Pyperclip is giving an error

2019-05-03 09:34发布

I use python 2.7. I installed pyperclip using sudo pip install pyperclip and it was installed successfully.

Every time I use the following simple code

import pyperclip
pyperclip.copy('Hello World')
message=pyperclip.paste()
print (message)

I get the following error:

/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57:
GtkWarning: could not open display   warnings.warn(str(e),
_gtk.Warning) /usr/local/lib/python2.7/dist-packages/pyperclip/__init__.py:102:
GtkWarning: IA__gtk_clipboard_get_for_display: assertion 'display !=
NULL' failed   cb = gtk.Clipboard() Traceback (most recent call last):
File "first.py", line 401, in <module>
    pyperclip.copy('Hello World')   File "/usr/local/lib/python2.7/dist-packages/pyperclip/__init__.py", line
102, in _copyGtk
    cb = gtk.Clipboard() RuntimeError: could not create GtkClipboard object

2条回答
神经病院院长
2楼-- · 2019-05-03 10:18

When using Python3 on a Debian based system, please install xclip and pyqt4 as the documentation states.

sudo apt-get install xclip python3-pyqt4

Then you can easily copy DataFrames like this:

import pandas as pd
import numpy as np
import sys

dates = pd.date_range('20130101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))

df.to_clipboard()

Pasting works with Google Sheets or Excel.

查看更多
SAY GOODBYE
3楼-- · 2019-05-03 10:24

It always helps to read the documentation.

On Windows, no additional modules are needed.
On Mac, the module uses pbcopy and pbpaste, which should come with the os.
On Linux, install xclip or xsel via package manager. For example, in Debian:
sudo apt-get install xclip

Otherwise on Linux, you will need the gtk or PyQt4 modules installed.

gtk and PyQt4 modules are not available for Python 3, and this module does not work with PyGObject yet.

I can see that you're using a unix based operating system from your post. So all you need to do at your terminal is sudo apt install xclip and then the gtk and PyQt4 modules via pip(since you use python 2).

查看更多
登录 后发表回答