модуль не найден, но он установлен и up2date - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь загрузить изображения с помощью scrapy на Mac OS X и возвращает следующее сообщение об ошибке:

ModuleNotFoundError: No module named 'PIL'
$ pip install image
Requirement already satisfied: image in /Library/Python/2.7/site-packages (1.5.27)
Requirement already satisfied: django in /Library/Python/2.7/site-packages (from image) (1.11.16)
Requirement already satisfied: pillow in /Library/Python/2.7/site-packages (from image) (5.3.0)
Requirement already satisfied: pytz in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from django->image) (2013.7)

Попробуем установить пакет образа:

$ pip install image
Reqfuirement already satisfied: image in /Library/Python/2.7/site-packages (1.5.27)
Requirement already satisfied: django in /Library/Python/2.7/site-packages (from image) (1.11.16)
Requirement already satisfied: pillow in /Library/Python/2.7/site-packages (from image) (5.3.0)
Requirement already satisfied: pytz in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from django->image) (2013.7)

Обновлениеpip?

pip install --upgrade pip
Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-18.1-py2.7.egg (18.1)

Python ist устанавливается через homebrew

PIP через sudo: sudo pip install image

Также пробовал:

easy_install pip
Password:
Searching for pip
Best match: pip 18.1
Processing pip-18.1-py2.7.egg
pip 18.1 is already the active version in easy-install.pth
Installing pip script to /usr/local/bin
Installing pip2.7 script to /usr/local/bin
Installing pip2 script to /usr/local/bin

Using /Library/Python/2.7/site-packages/pip-18.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

AND:

brew unlink python && brew link python

Дополнительная информация:

File "/usr/local/lib/python3.7/site-packages/scrapy/pipelines/images.py", line 15, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL'

MBP:bid user$ type python
python is hashed (/usr/local/opt/python/libexec/bin/python)

MBP:bid user$ /usr/local/opt/python/libexec/bin/pip show pip
Name: pip
Version: 18.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /usr/local/lib/python3.7/site-packages
Requires: 
Required-by: 

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 30 ноября 2018

Какую версию Python вы хотите использовать?Вы, кажется, утверждаете, что установили Python через homebrew , но вы используете Python 2.7, поставляемый Apple в /usr/bin/python, и поэтому pip устанавливается в /Library/Python/2.7.

Если вы хотитечтобы использовать homebrew Python и pip, вам необходимо запустить /usr/local/opt/python/libexec/bin/python.Вы можете увидеть всю эту информацию, если запустите:

brew info python

В общем, все, что просматривается или устанавливается в /anywhere/LOCAL/anywhere, будет homebrew .Все, что использует /usr/bin или /Library/anywhere, будет поставляться Apple.


Если вы хотите узнать, какую именно команду вы выполняете, используйте type, например:

type python
python is hashed (/usr/local/opt/python/libexec/bin/python)

Итак, это говорит о том, что на моей машине python это то, что в /usr/local/..., должно быть от homebrew , потому что оно содержит /.../LOCAL/...

Your pythonв настоящее время /usr/bin/python.Если вы хотите использовать homebrew , вам нужно изменить свой PATH в своем профиле входа и поставить /usr/local/opt/python/libexec/bin перед /usr/bin.Например:

export PATH=/usr/local/opt/python/libexec/bin:$PATH

Затем запустите новый терминал, чтобы вы работали с новым профилем.


Обратите внимание на разницу:

# Run the old Apple-supplied Python
/usr/bin/python -V
Python 2.7.10

# Run the shiny new homebrew Python
/usr/local/opt/python/libexec/bin/python -V
Python 3.7.1

# Run the homebrew pip - that installs into /something/LOCAL/something - sure sign it is not Apple's
/usr/local/opt/python/libexec/bin/pip show pip
Name: pip
Version: 18.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /usr/local/lib/python3.7/site-packages
...