小编典典

将虚拟环境项目从本地迁移到服务器(flask项目),是否必须再次安装依赖项?

python

我已经在本地计算机上的虚拟环境中创建了Flask应用程序,可以在本地运行它 (http://localhost:5000)

然后,我将此项目放入存储库中,然后转到服务器并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

我假设我必须先在虚拟环境中初始化某些东西?-像安装所有依赖项一样,还是必须pip install flask再次?-(这样做会很有趣…)

谢谢。


阅读 219

收藏
2020-12-20

共1个答案

小编典典

通常, python环境不能跨机器移植

这意味着您不能可靠地期望跨计算机移植 虚拟环境
。如果要在不同的操作系统之间移动内容,则尤其如此。例如,在Windows中创建的虚拟环境在Linux中将无法使用。

同样,在OSX中创建的虚拟环境在Linux中将无法使用。有时,您可以获得Linux> Linux兼容性,但这是偶然的,因此并不依赖于此。

原因很多-有些库需要针对本机扩展构建,其他一些则需要兼容的系统库才能正常工作,等等。

因此,最可靠的工作流程如下:

  1. 可以 (但我建议您反对)将虚拟环境与项目放置在同一目录中。如果这样做,请确保不要将虚拟环境根目录添加到源控制系统中。最好将虚拟环境与源代码分开(有关单独管理虚拟环境的好方法,请参阅virtualenvwrapper项目项目)。

  2. 应该 通过运行 创建需求文件pip freeze > requirements.txt。保持此文件更新并将其添加到您的源代码管理系统中。在目标系统中,只需创建一个 空的 虚拟环境,然后pip install -r requirements.txt确保正确安装了所有要求。这样做将确保还构建并安装了任何本机扩展。

2020-12-20