首先,我承认我可能不完全了解虚拟环境的内部工作原理,因此,如果我完全失败了,请原谅我。

对于我的台式机(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/

10-10 18:18