Python pip install module is not found. How to link python to pip location?
I'm a newbie and I needed the pySerial and feedparser module for my projects. I'm running Mountain lion.
I followed the following tutorial so that I could upgrade to python 2.7.3 and then use the above mentioned modules.
http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/
I followed this tutorial till I installed pip. Instead of installing Virtualenv. I used the following commands to install pySerial and feedparser
$ pip install pySerial
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages
Cleaning up...
I assumed that this was already present and checked it. Python seems to be importing this just fine. My python version has been upgraded to 2.7.3 btw since I installed it using homebrew as mentioned in the tutorial.
Then I tried installing feedparser
$ pip install feedparser
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages
Cleaning up...
Notice how its in the site-packages directory in the usr/local/lib.
All of my pip installs are being installed in that directory but python does not seem to be picking them up when i try importing them.
How do I set the path so that python also looks there as well as core directory?
Your help will be greatly appreciated.
I tried looking for answers here: Pip installs but module is not found Why I can't import beautifulsoup on mac using python 2.7 after installing it by using pip and/or easy_install?
but niether of them are in the same situation as I am. I don't understand why this is happening as i edited my bash_profile with the following
# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
then installed homebrew and then installed python 2.7.3 through homebrew (2.7.3 is now currently running on my machine)
I figured all pip installs would be correctly linked?
As a quick workaround, and assuming that you are on a bash-like terminal (Linux/OSX), you can try to export the PYTHONPATH environment variable:
export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
For Python 2.7
Here is something I learnt after a long time of having issues with pip when I had several versions of Python installed (valid especially for OS X users which are probably using brew to install python blends.)
I assume that most python developers do have at the beginning of their scripts:
#!/bin/env python
You may be surprised to find out that this is not necessarily the same python as the one you run from the command line >python
To be sure you install the package using the correct pip instance for your python interpreter you need to run something like:
>/bin/env python -m pip install --upgrade mymodule
I also had this problem. I noticed that all of the subdirectories and files under /usr/local/lib/python2.7/dist-packages/ had no read or write permission for group and other, and they were owned by root. This means that only the root user could access them, and so any user that tried to run a Python script that used any of these modules got an import error:
$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named selenium
>>>
I granted read permission on the files and search permission on the subdirectories for group and other like so:
$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages
And that resolved the problem for me:
$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>>
I installed these packages with pip (run as root with sudo). I am not sure why it installed them without granting read/search permissions. This seems like a bug in pip to me, or possibly in the package configuration, but I am not very familiar with Python and its module packaging, so I don't know for sure. FWIW, all packages under dist-packages had this issue. Anyhow, hope that helps.
Regards.
No other solutions were working for me, so I tried:
pip uninstall <module> && pip install <module>
And that resolved it for me. Your mileage may vary.