首先,我承认我可能不完全了解虚拟环境的内部工作原理,因此,如果我完全失败了,请原谅我。
对于我的台式机(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
。我的问题:
我是否误解了虚拟环境?我应该能够像以前一样复制虚拟环境吗?我认为一致性和可移植性是主要特征。
我怎样才能解决这个问题?
谢谢你的帮助!
最佳答案
我很确定更改此行:
from flaskext.principal
至
from flask.ext.principal
应该管用。
我的系统上安装了3个虚拟环境(Mac OSX 10.6 + Python2.7)。我创建了一个新的virtualenv,突然在其他virtualenv中正常工作的代码在这里不起作用,在这种情况下,flaskext.wtf是元凶。
我在两个virtualenvs中检查了flask版本及其扩展名,它们完全相同,因此版本问题也毫无疑问。
为什么要发生这种情况并没有意义,但无论如何都可以尝试一下并回复。
关于python - 转移到新计算机后在虚拟环境中找不到Flask Extension,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11375557/