我在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