12

所以我正在从头开始创建一个全新的 Flask 应用程序。正如所有优秀的开发人员所做的那样,我的第一步是创建一个虚拟环境。

我在虚拟环境中安装的第一件事是Flask==0.11.1. Flask 安装以下依赖项:

  • 点击==6.6
  • 它的危险==0.24
  • Jinja2==2.8
  • MarkupSafe==0.23
  • Werkzeug==0.11.11
  • 轮子==0.24.0

现在,我创建了一个requirements.txt以确保克隆存储库的每个人都具有相同版本的库。然而,我的困境是这样的:

  • 我是否在requirements.txt中提到了每个 Flask 依赖项以及版本号或
  • 我是否只是在requirements.txt中提到了确切的 Flask 版本号,并希望当他们执行pip install requirements.txt时,Flask 会负责依赖管理,他们会下载正确版本的依赖库
4

4 回答 4

29

一件好事是您正在使用 virtualenv,这将使您的任务变得非常容易。

  1. 激活 virtualenv ( $source path_to_virtualenv/bin/activate)

  2. 转到您的项目根目录

  3. 在 requirements.txt 中获取所有包以及依赖项

    pip freeze > requirements.txt
    
  4. 除了确保下一个人通过以下命令递归地安装需求之外,您不必担心其他任何事情

    pip install -r requirements.txt
    
于 2016-09-09T09:53:51.313 回答
5

这两种方法都有效且有效。但是有一点区别。当您在中输入所有依赖项时,requirements.txt您将能够固定它们的版本。如果你把它们排除在外,可能会有以后的更新,如果 FlaskWerkzeug>=0.11在它的依赖项中有类似的东西,你将安装一个更新版本的 Werkzeug。

所以它归结为更新与定义的环境。什么更适合你。

于 2016-09-09T07:53:26.260 回答
4

您可以(从您的活动虚拟环境中)执行以下操作

pip freeze > requirements.txt

它将自动处理您项目中可用的所有库/模块。

下一个开发人员只需发出:

pip install -r requirements.txt
于 2016-09-09T07:45:26.667 回答
0

如果您只想查看已安装的软件包,请执行
pip freeze.

但是如果你想要你的requirement.txt中的所有这些包,那么做
pip freeze > requirements.txt

于 2018-11-01T20:35:28.740 回答