Я установил pyperclip (утилиту буфера обмена) на виртуальную машину Windows, и некоторые функции почему-то не работают. Я пытаюсь использовать функцию waitForPaste()
, как показано ниже:
import pyperclip as pyc
import os
pyc.waitForPaste()
Однако это приводит к следующей ошибке:
AttributeError Traceback (most recent call
last) Cell In\[18\], line 1 \----\> 1 pyc.waitForPaste()
AttributeError: module 'pyperclip' has no attribute 'waitForPaste
Как ни странно, если следующий код работает нормально! Мне удалось написать этот фрагмент:
pyc.copy('The text to be copied to the clipboard.')
pyc.paste()
Что произвело:
'The text to be copied to the clipboard.'
Я не сталкиваюсь с той же проблемой в MACOS, только в Windows.
CTRL+F для «waitForPaste» в исходном коде pyperclip предполагает, что функция больше не существует, несмотря на то, что она все еще присутствует в документации; единственные попадания, которые он получает, указаны в документации. У вас есть несколько вариантов, если вам все еще нужна эта функция:
waitForPaste()
когда-то было реализовано, но позже удалено; если вы заглянете достаточно далеко в историю, вы, возможно, сможете найти версию, которая работает.pyperclip
имеет открытый исходный код и доступен для публичного редактирования; если вы напишете рабочую реализацию или найдете исходную реализацию в истории, вы можете создать запрос на включение, чтобы добавить ее в официальный источник.Конечно, могла быть причина, по которой эта функция была удалена; если это так, то, вероятно, лучше оставить спящих собак лежать.
Документы pyperclip
содержат следующий фрагмент кода и сообщение об ошибке, демонстрирующие аргумент timeout
в waitForPaste()
.
>>> import pyperclip
>>> pyperclip.waitForNewPaste(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\github\pyperclip\src\pyperclip\__init__.py", line 689, in waitForNewPaste
raise PyperclipTimeoutException('waitForNewPaste() timed out after ' + str(timeout) + ' seconds.')
pyperclip.PyperclipTimeoutException: waitForNewPaste() timed out after 5 seconds.
Однако строка 689 больше не существует в __init__.py
; последняя строка — 658, что, похоже, подразумевает, что эта функция когда-то существовала, но с тех пор была удалена.
Вместо последней версии я установил версию 1.8.2, где работал функционал:
pip install --force-reinstall -v pyperclip==1.8.2