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

时间:2016-09-09 07:32:54

标签: python pip virtualenv requirements.txt

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

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

  
      
  • 点击== 6.6
  •   
  • itsdangerous == 0.24
  •   
  • 的Jinja2 == 2.8
  •   
  • MarkupSafe == 0.23
  •   
  • WERKZEUG == 0.11.11
  •   
  • 轮== 0.24.0
  •   

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

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

4 个答案:

答案 0 :(得分:17)

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

  1. 激活virtualenv($source path_to_virtualenv/bin/active
  2. 转到项目根目录
  3. 在requirements.txt中获取所有包以及依赖项

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

    pip install -r requirements.txt
    

答案 1 :(得分:4)

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

pip freeze > requirements.txt

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

下一位开发人员只需要发出:

pip install -r requirements.txt

答案 2 :(得分:4)

这两种方法都有效且有效。但是有一点不同。当您在Werkzeug>=0.11中输入所有依赖项时,您将能够固定它们的版本。如果你把它们遗漏了,可能会有更新版本,如果Flask的依赖项中有{ "areas" : [ { "name" : "A", "borders" : [[4,50], [4.5,51],...], "otherProperty" : "red" }, { "name" : "B", "borders" : [[3,48] , [3.5,49],...], "otherProperty" : "yellow" } ] } ,你会得到更新版本的Werkzeug。

因此,它归结为更新与已定义的环境。无论什么更适合你。

答案 3 :(得分:-1)

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

但是如果您希望所有这些包都在您的require.txt中,请执行
pip freeze > requirements.txt

相关问题