我會在前言中承認我可能不完全理解虛擬環境的內部工作原理,所以請原諒我,如果我犯了徹底失敗。對於我的桌面(Mac OS X 10.7 + Python 2.7)我有一個虛擬環境,它包含我在Python中構建的Web應用程序(使用Flask作爲框架)。我想在筆記本電腦上做一些工作,所以我壓縮了包含虛擬環境和代碼的目錄,並將其轉移到我的筆記本電腦上(Mac OS X 10.7 + Python 2.7)。轉移到新電腦後虛擬環境中找不到虛擬環境中的虛擬機擴展
解壓後,我嘗試啓動我的應用程序並收到以下消息:
(venv)****:*** ***$ python runserver.py
Traceback (most recent call last):
File "runserver.py", line 2, in <module>
from weirdcanada import app
File "/Users/****/****/weirdcanada/weirdcanada/__init__.py", line 3, in <module>
import weirdcanada.views
File "/Users/****/****/weirdcanada/weirdcanada/views.py", line 18, in <module>
from flaskext.principal import AnonymousIdentity
ImportError: No module named flaskext.principal
我又試圖pip install flask-principal
,並安裝後,我重新運行該應用程序,並收到了同樣的錯誤。我在虛擬環境中檢查了site-packages
,並且安裝了flask-principal
。
我的問題:
- 我誤解虛擬環境的意義呢?我應該像我一樣能夠複製虛擬環境嗎?我認爲一致性和便攜性是主要特徵。
- 我該如何解決這個問題?
感謝您的幫助!
謝謝。這工作。但是,我不得不在我的筆記本電腦上安裝所有的python模塊(在虛擬環境的源代碼之後)。我認爲虛擬環境的好處是封裝,或者我不理解鏈接是如何工作的。 – aaronlevin 2012-07-08 05:45:17
@weirdcanada virtualenv的目的是包分離。您應該能夠在不同的項目中使用不同版本的軟件包。所以每個virtualenv都需要重新安裝軟件包。也可以選擇使用默認安裝包,但在大多數情況下會失敗。 – codecool 2012-07-08 06:37:03
感謝您的幫助和澄清虛擬環境的東西! – aaronlevin 2012-07-08 16:55:35