pyauto gui / pyscreeze не может найти подушку, даже если она успешно установлена ​​в той же папке пакета, и я могу импортировать ее - PullRequest
0 голосов
/ 27 апреля 2020

Я прохожу курс под названием Automate the Boring Stuff, и я в последней части рассказываю о pyauto gui и подушке. Я могу успешно импортировать pyauto gui и подушку, и я могу использовать функции нажатия клавиш pyauto gui, но если я пытаюсь запустить функцию в pyauto gui, которая включает подушку, это выдает мне эту ошибку. Я пытаюсь запустить функцию pyautogui.screenshot()

File "<input>", line 1, in <module>
  File "C:\Users\offic\PycharmProjects\test\venv\Lib\site-packages\pyscreeze\__init__.py", line 134, in wrapper
    raise PyScreezeException('The Pillow package is required to use this function.')
pyscreeze.PyScreezeException: The Pillow package is required to use this function.

, и вот код в pyscreeze, который определяет, есть ли подушка

try:
    from PIL import Image
    from PIL import ImageOps
    from PIL import ImageDraw
    if sys.platform == 'win32': # TODO - Pillow now supports ImageGrab on macOS.
        from PIL import ImageGrab
    _PILLOW_UNAVAILABLE = False
except ImportError:
    # We ignore this because failures due to Pillow not being installed
    # should only happen when the functions that specifically depend on
    # Pillow are called. The main use case is when PyAutoGUI imports
    # PyScreeze, but Pillow isn't installed because the user is running
    # some platform/version of Python that Pillow doesn't support, then
    # importing PyAutoGUI should not automatically fail because it
    # imports PyScreeze.
    # So we have a `pass` statement here since a failure to import
    # Pillow shouldn't crash PyScreeze.
    _PILLOW_UNAVAILABLE = True
def requiresPillow(wrappedFunction):
    """
    A decorator that marks a function as requiring Pillow to be installed.
    This raises PyScreezeException if Pillow wasn't imported.
    """
    @functools.wraps(wrappedFunction)
    def wrapper(*args, **kwargs):
        if _PILLOW_UNAVAILABLE:
            raise PyScreezeException('The Pillow package is required to use this function.')
        return wrappedFunction(*args, **kwargs)
    return wrapper

, если я пытаюсь просто наберите 'из PIL import Image', он выдаст эту ошибку

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Edu 2019.1\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\offic\PycharmProjects\test\venv\Lib\site-packages\PIL\Image.py", line 93, in <module>
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Users\offic\PycharmProjects\test\venv\Lib\site-packages\PIL\__init__.py)

, и это когда я установил подушку

C:\Users\offic>py -m pip install --user Pillow
Requirement already satisfied: Pillow in c:\users\offic\pycharmprojects\test\venv\lib\site-packages (7.1.1)

this is what pillow looks like in my package directory это то, что подушка выглядит как в моей директории пакетов

и pyscreeze говорит, что якобы доволен установкой Pillow

C:\Users\offic>py -m pip install --user pyscreeze
Requirement already satisfied: pyscreeze in c:\users\offic\pycharmprojects\test\venv\lib\site-packages (0.1.26)
Requirement already satisfied: Pillow>=5.2.0 in c:\users\offic\pycharmprojects\test\venv\lib\site-packages (from pyscreeze) (7.1.1)

Я не знаю, что происходит, потому что у меня почти не было проблем с установка пакетов до и, кажется, в нужном месте и в актуальном состоянии. Пожалуйста, помогите мне!

...