我有一个包含多个项目的大解决方案。我使用virtualenv
。
因此,对于我在解决方案中的一个项目,我已经安装了我需要的东西,包括numpy
和pandas
但当我执行类似的事情时:
cd ../project2
sudo python setup.py develop
无法安装pandas
包并显示错误
ImportError: no module named numpy
但如果我在
后立即运行类似的东西python
import numpy
numpy.version.version
import pandas
pandas.version.version
它绝对正确地解析了这段代码,并向我展示了已安装软件包的版本。
那么问题是什么,如何解决它以便能够安装项目依赖项?
OS:Ubuntu 12.04 LTS,Python 2.7.3
python -msite
输出
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
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
答案 0 :(得分:3)
从python -msite
的输出中可以看出,python
和sudo python
在非常不同的环境中运行Python版本。他们看到不同的模块并不奇怪。 sudo
通常会更改您的环境,尤其是您的PATH
和HOME
环境变量,这可能会导致运行不同的PYTHON解释器,或者导入不同的user
模块
通常,在主目录中的virtualenv中安装内容时,没有理由要使用sudo。您应该使用virtualenv中的pip安装来安装软件包。
答案 1 :(得分:0)
我最近在尝试将熊猫从0.23.1版本更新到0.24.1时遇到此错误。
解决我问题的方法是先执行以下命令来更新点子:
python -m pip install --upgrade pip
然后更新所需的库。