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