Reputation: 6502
I have a big solutions with multiple projects inside. I use virtualenv
for that.
So for one of my projects in solution I already install the stuff I need, including numpy
and pandas
but when I I executing something like that:
cd ../project2
sudo python setup.py develop
It fails installing pandas
package and show the error
ImportError: no module named numpy
But if I run something like that right after
python
import numpy
numpy.version.version
import pandas
pandas.version.version
it resolve this code absolutely correctly and show me the versions of packages installed.
So what it the problem there and how could I resolve it to being able to install project dependencies?
OS: Ubuntu 12.04 LTS, Python 2.7.3
python -msite
output
sys.path = [
'/home/user1/code/myproject/project2',
'/home/user1/code/myproject/project1/src',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/pymongo-2.5-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/Jinja2-2.7.2-py2.7.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/pandas-0.11.0-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/scikit_learn-0.13.1-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/scipy-0.13.3-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/nltk-2.0.4-py2.7.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/MarkupSafe-0.19-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/pytz-2014.1-py2.7.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages/six-1.6.1-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/pymongo-2.5-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/Jinja2-2.7.2-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/pandas-0.11.0-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/scikit_learn-0.13.1-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/scipy-0.13.3-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/nltk-2.0.4-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/MarkupSafe-0.19-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/pytz-2014.1-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/python_dateutil-2.2-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-x86_64.egg',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages/six-1.6.1-py2.7.egg',
'/home/user1/code/myproject/venv/lib/python2.7',
'/home/user1/code/myproject/venv/lib/python2.7/plat-linux2',
'/home/user1/code/myproject/venv/lib/python2.7/lib-tk',
'/home/user1/code/myproject/venv/lib/python2.7/lib-old',
'/home/user1/code/myproject/venv/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/home/user1/code/myproject/venv/local/lib/python2.7/site-packages',
'/home/user1/code/myproject/venv/lib/python2.7/site-packages',
]
USER_BASE: '/home/user1/.local' (exists)
USER_SITE: '/home/user1/.local/lib/python2.7/site-packages' (exists)
ENABLE_USER_SITE: False
output of sudo python -msite
sys.path = [
'/home/user1/code/myproject/project2',
'/home/user1/code/myproject/project1/src',
'/usr/local/lib/python2.7/dist-packages/pymongo-2.5-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/Jinja2-2.7.2-py2.7.egg',
'/home/user1/code/myproject/project_flask/src',
'/usr/local/lib/python2.7/dist-packages/nltk-2.0.4-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/tweepy-2.2-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/python_twitter-0.8.2-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/lamson-1.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/celery-3.1.9-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/PyYAML-3.10-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/mongoengine-0.7.9-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/multiprocessing-2.6.2.1-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/Flask_WTF-0.5.2-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Flask_Mail-0.6.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Flask-0.7.2-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/Werkzeug-0.8.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/WTForms-0.6.3-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/oauth2-1.5.211-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/python_daemon-1.6-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/nose-1.3.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/mock-1.0.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/kombu-3.0.14-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/billiard-3.3.0.16-py2.7-linux-x86_64.egg',
'/usr/local/lib/python2.7/dist-packages/pytz-2014.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/blinker-1.3-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
'/usr/lib/python2.7/dist-packages/ubuntuone-couch',
'/usr/lib/python2.7/dist-packages/ubuntuone-installer',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
]
USER_BASE: '/home/user1/.local' (exists)
USER_SITE: '/home/user1/.local/lib/python2.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
Upvotes: 6
Views: 8036
Reputation: 331
I recently had this error while trying to update Pandas from version 0.23.1 to 0.24.1.
What solved my problem was to first update pip by executing:
python -m pip install --upgrade pip
And then updating the desired library.
Upvotes: 8
Reputation: 601351
As can be seen from the output of python -msite
, python
and sudo python
run Python versions in very different envirnoments. It's no surprise they see diferent modules. sudo
usually changes your environment, in particular your PATH
and HOME
environment variables, which may lead to either a different PYTHON interpreter being run, or a differemt user
module being imported.
In general, when installing something inside a virtualenv in your home directory, there is no reason why you would want to use sudo. You should use the pip installation within the virtualenv to install packages.
Upvotes: 4