简体   繁体   中英

no module found PIL but it is installed and up2date

I am trying to download images with scrapy on mac os X and it returns the following error msg:

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)

Lets try to install the image package:

$ 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)

Update 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 installe via homebrew

PIP via sudo: sudo pip install image

Also tried:

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

More info:

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: 

Any ideas how to fix that?

Which version of Python do you want to use? You seem to claim you installed Python via homebrew but you are using Python 2.7 as supplied by Apple in /usr/bin/python and that is why pip is installing in /Library/Python/2.7 .

If you want to use homebrew Python and pip you need to be running /usr/local/opt/python/libexec/bin/python . You can see all this information if you run:

brew info python

In general, anything that looks in or is installed in /anywhere/LOCAL/anywhere will be homebrew . Anything that uses /usr/bin or /Library/anywhere will be Apple-supplied.


If you want to know which actual command you are running, use type like this:

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

So that tells me that, on my machine, python is the one in /usr/local/... which must be from homebrew because it contains /.../LOCAL/...

Your python is currently /usr/bin/python . If you want to use the homebrew one, you need to change your PATH in you login profile and put /usr/local/opt/python/libexec/bin before /usr/bin . Eg:

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

Then start a new Terminal so that you are running with the new profile.


Note the difference:

# 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM