首先,我承认我可能不完全理解虚拟环境的内部运作,所以如果我完全失败了,请原谅我。
对于我的桌面(MacOSX10.7+Python2.7),我有一个虚拟环境,它包含了我用Python构建的web应用程序(使用Flask作为框架)。我想在笔记本电脑上做一些工作,所以我压缩了包含虚拟环境和代码的目录,并将其转移到我的笔记本电脑(MacOSX10.7+Python2.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。
我的问题:
谢谢你的帮忙!
发布于 2012-07-07 17:42:10
我很肯定,改变这句话:
    from flaskext.principal至
    from flask.ext.principal应该行得通。
我的系统上安装了3个虚拟环境(MacOSX10.6+ Python2.7)。我创建了一个新的virtualenv,突然,在其他虚拟环境中运行良好的代码在这里无法工作,在这种情况下,flaskext.wtf是罪魁祸首。
我检查了两种虚拟主机中的烧瓶及其扩展版本,它们是完全相同的,所以版本问题也是没有问题的。
这是没有道理的,为什么这应该发生,但无论如何,尝试这个和回复。
发布于 2012-07-07 16:40:22
我不确定,但是您是在调用系统范围的python安装,还是调用虚拟环境中的python二进制文件?一个虚拟环境显然会有自己的python二进制解释器,所有的包都应该使用这个二进制文件来安装。也就是说,应该在/usr/bin/或其他地方有一个系统范围的python二进制文件,另一个在/var/www/myapp/env/bin/或类似的地方。这就是需要在虚拟环境中使用的应用程序。
https://stackoverflow.com/questions/11375557
复制相似问题