我在AWS上供应计算机。当我在AWS公共云上设置本机时(使用标准版本的Ubuntu AMI),我可以在系统范围的python发行版中成功获得我需要的所有python软件包(如Flask):软件包中存在`sudo python`,但不是运行`python`时
[bash]$ python -c "import flask; print flask.__file__"
/usr/local/lib/python2.7/dist-packages/flask/__init__.pyc
[bash]$ python -c "import pprint, sys; pprint.pprint(sys.path)"
['',
'/usr/local/lib/python2.7/dist-packages/setuptools-20.2.2-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/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']
当我在私人Ubuntu AMI上使用相同的sudo pip install -r REQUIREMENTS
(这无疑被改编为具有“更好的安全性”)时,这些软件包似乎安装得很好,但是当我从命令行运行python时,我得到一个ImportError
。
[bash]$ python -c "import flask; print flask.__file__"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named flask
有趣的是,使用sudo运行命令产生预期的结果,我在公共AWS账号获取:运行python
和sudo python
当
[bash]$ sudo python -c "import flask; print flask.__file__"
/usr/local/lib/python2.7/dist-packages/flask/__init__.pyc
sys.path
是相同的,都似乎对文件/usr/local/lib/python2.7/dist-packages
:
[bash]$ python -c "import pprint, sys; pprint.pprint(sys.path)"
['',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/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']
[bash]$ sudo python -c "import pprint, sys; pprint.pprint(sys.path)"
['',
'/usr/local/lib/python2.7/dist-packages/setuptools-20.2.2-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/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']
这里的任何建议将是非常受欢迎的。我从来没有见过这样的事情,而且我很难弄清楚这个修改后的Ubuntu AMI有什么不同,可能会导致这个问题。
这很奇怪。关闭我的头顶,有三件事情要检查:1)对烧瓶安装的文件/目录的权限。 2)检查'pip'版本,并确保它匹配你的Python版本。做一个'pip --version'并确保它是正确的版本(Python 2.7或Python 3.x)。 3)我假设您的需求文件中还有其他依赖项。尝试新的环境,并_only_安装瓶(只是为了排除其他库导致问题的可能性)。 – larsbutler
@larsbutler事实证明'/ usr/lib/python2.7/dist-packages'目录有一些权限问题。我会在下面添加一个问答风格的回应来揭示答案。非常感谢你的帮助! – dino