jon*_*tyo 2 python git pip virtualenv flask
我在本地机器的虚拟环境中创建了一个烧瓶应用程序,我可以在本地运行它 (http://localhost:5000)
然后我把这个项目放在一个 repo 中,然后我去我的服务器并 git clone 这个项目。
我的本地机器和我的服务器上的所有文件都是相同的。
然后我想通过尝试在服务器上测试这个虚拟环境 .venv/bin/active
但是我遇到了一个错误,它说我没有烧瓶!:
Traceback (most recent call last):
File "__init__.py", line 1, in <module>
from flask import Flask
ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud)
我假设我必须先在虚拟环境中初始化一些东西?- 喜欢安装所有依赖项还是我必须pip install flask再次安装?- (这样做会很有趣......)
谢谢。
作为一般规则,python 环境不能跨机器移植。
这意味着您不能可靠地期望跨机器移植虚拟环境。如果您在不同的操作系统之间移动内容,则尤其如此。例如,在 Windows 中创建的虚拟环境在 Linux 中不起作用。
同样,在 OSX 中创建的虚拟环境在 Linux 中也不起作用。有时,您可以获得 Linux > Linux 兼容性,但这是偶然的,不可依赖。
原因很多——一些库需要针对本机扩展构建,其他库需要兼容的系统库才能工作,等等。
因此,最可靠的工作流程如下:
您可以(但我不建议这样做)将您的虚拟环境与您的项目放在同一目录中。如果这样做,请确保不要将虚拟环境根目录添加到源代码控制系统。最好将您的虚拟环境与您的源代码分开(请参阅virtualenvwrapper项目项目以获得单独管理您的虚拟环境的好方法)。
您应该创建一个需求文件,通过运行pip freeze > requirements.txt. 保持此文件更新并将其添加到您的源代码控制系统。在您的目标系统中,只需创建一个空的虚拟环境,然后pip install -r requirements.txt确保正确安装所有要求。这样做将确保也构建和安装任何本机扩展。