我接受这一点,承认我可能不完全理解虚拟环境的内部工作,所以如果我犯了彻底的失败,请原谅我。
对于我的桌面(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
。
我的问题:
感谢您的帮助!
答案 0 :(得分:2)
我很确定改变这一行:
from flaskext.principal
到
from flask.ext.principal
应该有用。
我的系统上安装了3个虚拟环境(Mac OSX 10.6 + Python2.7)。我创建了一个新的virtualenv,突然之间在其他virtualenv中工作正常的代码在这里工作不正常,在这种情况下,flaskext.wtf是罪魁祸首。
我检查了版本的flask及其在virtualenvs中的扩展,它们完全相同,因此版本问题也是不可能的。
为什么会发生这种情况没有任何意义,但无论如何都要尝试并回复。
答案 1 :(得分:0)
我不确定,但您是在调用系统范围的python安装,还是在虚拟环境中调用python二进制文件?虚拟环境显然会有自己的python二进制解释器,并且应该使用该二进制文件安装所有软件包以进行安装。即/ usr / bin /或其他什么应该有一个系统范围的python二进制文件,另一个在/ var / www / myapp / env / bin /或类似的东西。这是需要在虚拟环境中获得应用程序的那个。