为Python虚拟环境管理requirements.txt的内容

为Python虚拟环境管理requirements.txt的内容,python,pip,virtualenv,requirements.txt,Python,Pip,Virtualenv,Requirements.txt,因此,我正在从头开始创建一个全新的Flask应用程序。和所有优秀的开发人员一样,我的第一步是创建一个虚拟环境 我在虚拟环境中安装的第一件事是Flask==0.11.1。Flask安装其以下依赖项: 点击==6.6 危险==0.24 金甲2==2.8 MarkupSafe==0.23 Werkzeug==0.11.11 车轮==0.24.0 现在,我创建了一个requirements.txt,以确保克隆存储库的每个人都拥有相同版本的库。然而,我的困境是: 我是否在requirements.t

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

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

  • 点击==6.6
  • 危险==0.24
  • 金甲2==2.8
  • MarkupSafe==0.23
  • Werkzeug==0.11.11
  • 车轮==0.24.0
现在,我创建了一个requirements.txt,以确保克隆存储库的每个人都拥有相同版本的库。然而,我的困境是:

  • 我是否在requirements.txt中提及每个烧瓶依赖项以及版本号 或
  • 我是否只是在requirements.txt中提到了确切的Flask版本号,并希望当他们执行pip安装requirements.txt时,Flask将负责依赖关系管理,并下载正确版本的依赖库
您可以(从活动虚拟环境)执行以下操作

pip freeze > requirements.txt
它将自动处理项目中可用的所有库/模块

下一个开发者只需发布:

pip install -r requirements.txt

这两种方法都是有效和有效的。但是有一点不同。当您在
requirements.txt
中输入所有依赖项时,您将能够锁定它们的版本。如果您不使用它们,可能会有一个更高的更新,如果Flask的依赖项中有类似于
Werkzeug>=0.11
的内容,您将安装一个更新版本的Werkzeug


所以它归结为更新和定义的环境。任何更适合您的都可以。

这里有一件好事,那就是您正在使用virtualenv,这将使您的任务变得非常简单

  • 激活virtualenv(
    $source path_to_virtualenv/bin/Activate

  • 转到项目根目录

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

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

    pip install -r requirements.txt
    

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

    但是,如果您希望在requirement.txt中包含所有这些包,那么就这样做

    pip-freeze>requirements.txt

    请查看中的
    pip-compile
    命令。@dirn..这真是太好了..谢谢。。