我在 Windows 10 build 20190 上通过 Windows Terminal Preview (1.2.2234.0) 在 WSL2 中运行的 Ubuntu 18.04 上使用 IPython 7.16.1 (Python 3.7.7)(尽管问题不限于 IPython,它与外壳本身有关) .我正在尝试使用 pandas.read_clipboard()
在从 Windows 复制的数据上,即在 WSL 之外。但是,收到以下错误:
PyperclipException:
Pyperclip could not find a copy/paste mechanism for your system.
For more information, please visit
https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
我确实理解这是由于 WSL 不支持显示,但是,由于我可以将粘贴数据复制到 WSL 和 Windows,因此应该有一种机制可以访问 Windows 剪贴板。有针对这个的解决方法吗?我看过
xclip
, xsel
, QTpy
根据建议 here , 和 here ,没有帮助。完整的堆栈跟踪:
In [1]: import pandas as pd
In [2]: df = pd.read_clipboard()
---------------------------------------------------------------------------
PyperclipException Traceback (most recent call last)
<ipython-input-2-861af318b71b> in <module>
----> 1 df = pd.read_clipboard()
~/anaconda3/envs/tensorflow_gpu/lib/python3.7/site-packages/pandas/io/clipboards.py in read_clipboard(sep, **kwargs)
36 from pandas.io.parsers import read_csv
37
---> 38 text = clipboard_get()
39
40 # Try to decode (if needed, as "text" might already be a string here).
~/anaconda3/envs/tensorflow_gpu/lib/python3.7/site-packages/pandas/io/clipboard/__init__.py in lazy_load_stub_paste()
648 global copy, paste
649 copy, paste = determine_clipboard()
--> 650 return paste()
651
652
~/anaconda3/envs/tensorflow_gpu/lib/python3.7/site-packages/pandas/io/clipboard/__init__.py in __call__(self, *args, **kwargs)
285 class ClipboardUnavailable:
286 def __call__(self, *args, **kwargs):
--> 287 raise PyperclipException(EXCEPT_MSG)
288
289 def __bool__(self) -> bool:
PyperclipException:
Pyperclip could not find a copy/paste mechanism for your system.
For more information, please visit
https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
最佳答案
我注意到这个问题与以下代码块有关:pandas/io/clipboard/init.py#L523-L526
如果我编辑 if "Microsoft" in f.read():
行,并将“Microsoft”替换为“microsoft”(小写“m”),然后剪贴板功能对我有用。
这不是一个好的长期解决方案,但绝对是一个简单的补丁,直到 pandas 团队整合它。
关于python - 尝试访问从 Windows 复制的数据时,运行 Ubuntu 18 LTS 的 WSL2 上出现 Pyperclip 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63539268/