requirements.txt的作用

用于记录所有依赖包及其精确的版本号。以便新环境部署。

使用pip生成
pip freeze >requirements.txt
当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令

pip install -r requirements.txt

注:pip:https://pip.pypa.io/en/stable/reference/pip_install/

# pip --help
Usage:   
  pip <command> [options]

Commands:
  install                       安装包.
  uninstall                   卸载包.
  freeze                      按着一定格式输出已安装包列表
  list                            列出已安装包.
  show                        显示包详细信息.
  search                      搜索包,类似yum里的search.
  wheel                       Build wheels from your requirements.
  zip                           不推荐. Zip individual packages.
  unzip                       不推荐. Unzip individual packages.
  bundle                      不推荐. Create pybundles.
  help                        当前帮助.

General Options:
  -h, --help                  显示帮助.
  -v, --verbose               更多的输出,最多可以使用3次
  -V, --version               现实版本信息然后退出.
  -q, --quiet                   最少的输出.
  --log-file <path>           覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log
  --log <path>                不覆盖记录verbose输出的日志.
  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
  --timeout <sec>             连接超时时间 (默认15秒).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
  --cert <path>                 证书.

当安装软件的时候,尤其是python软件,通常你需要安装很多软件是一件很正常的事情,你只需要输入命令 easy_install MyPackage 你就可以获得十几个包并且每个包都有其对应的版本..

需求文件为您提供了一种创建环境的方法:一组工作在一起的包。

如果你曾经试图在一个新的系统上安装一个应用程序,或者稍微更新了一部分,并且失败了,pip的requirements非常适合来做这个工作。如果你还没有遇到这个问题,那么最终你也会这样做,pip的requirements非常适合来做这个工作。

需求文件:要安装的软件包列表;而不是运行像pip MyApp和获得任何library,你可以创建一个这样需求文件:

MyApp
Framework==0.9.4
Library>=0.2

若果你把他保存在 requirements.txt, 你就可以输入 pip install -r requirements.txt. 不考虑setup.py里面列举的MyAPP, 你会得到一个特定版本的框架(0.9.4)和至少0.2的版本库。 (你也许会考虑在MyApp’s setup.py 中列举这些特定的版本 –但是如果你想要尝试新的版本或者释放MyApp的一个新的版本,如果0.3的库不能在你的应用中使用,你必须要修改你的MyApp, 您还可以添加MyApp不严格要求的可选的库和支持工具,给人提供一种套推荐的库。

你也可以include “editable” 包(从子版本中获得), Git, Mercurial 和Bazaar. 这些就相当于运行 -e命令来pip. 如下:

-e svn+http://myrepo/svn/MyApp#egg=MyApp

你必须以 svn+ (git+hg+ or bzr+)开头,并且必须包含 #egg=Package 那样pip知道你想从哪个URL中获取到什么. 你也可以在URL中包含 @rev 比如, @275 来获得275版本.

需求文件大多是扁平的。也许MyApp需要框架,框架需要库。建议在一个单一的需求文件中列出所有这些;它是Python程序的性质,隐式地将MyApp和库直接绑定。例如,框架可能暴露一个库的对象,所以如果库更新了,MyApp可能直接被打破。如果发生这种情况,你可以不必通过重新发布MyApp,而是更新要求文件较早版本的库来解决这个问题,。

Freezing Requirements

在工作环境中创建一个新的需求文件:

$ pip freeze > stable-req.txt

这个命令会在stable-req.txt中写入一个所有安装库的列表以及对应的版本的列。你也许想在生成后修改文件 (e.g:比如释放不必要的包),但是这会给你一个稳定的开始指针来重建你的需求文件.

你也可以把它给一个已经存在的需求文件,他将会吧这个需求文件当做一种新的文件的模板 ,所以如果你运行:

$ pip freeze -r devel-req.txt > stable-req.txt

将会在 devel-req.txt中有顺序的的列出包并保存注释

需求文件格式

需求文件是一种让PIP安装特定包来构成环境的方法。

需求文件的每一行指示要安装的东西。例如:

MyPackage==3.0

也可以需求文件中请求额外部分:如:

MyPackage==3.0 [PDF]

包也可以以“editable”的形式安装. 这会将源代码放到src/distname (小写字母) 下并且在包上运行 python setup.py develop . 显示编辑, 用-e, 比如:

-e svn+http://svn.myproject.org/svn/MyProject/trunk#egg=MyProject

#egg=MyProject 部分非常重要,因为当你可以安装简单的SVN的位置,项目名称在其他地方是有用的。

你也可以为不可编辑的URL指定名字的egg name。这对于指向本地文件系统上的头位置是有用的。

file:///path/to/your/lib/project#egg=MyProject

或者相对路径:

file:../../lib/project#egg=MyProject

给pip暗示,应该去哪里寻找文件的命令 -f (--find-links)如:

$ pip -f http://someserver.org/index-of-packages MyPackage==3.0

#链接是 MyPackage-3.0.tar.gz的形式.

如果想直接从一个链接获取tarball或zip文件 ,不需要用 -f 命令,只需要写绝对路径就可以,如:

$ pip install http://someserver.org/packages/MyPackage-3.0.tar.gz

版本控制

Subversion

Pip 支持URL 体系 svnsvn+svnsvn+httpsvn+httpssvn+ssh. 你也可以具体的修改一个SVN的URL,比如:

-e svn+svn://svn.myproject.org/svn/MyProject#egg=MyProject
-e svn+http://svn.myproject.org/svn/MyProject/trunk@2019#egg=MyProject

该命令检查revision 2019. @{20080101} 也会检查从2008-01-01以来的revision. 你也可以使用 -esvn+....来检查revision

Git

Pip 支持从 git上克隆文件git+http 和git+ssh:

-e git://git.myproject.org/MyProject.git#egg=MyProject
-e git+http://git.myproject.org/MyProject/#egg=MyProject
-e git+ssh://git@myproject.org/MyProject/#egg=MyProject

传递branch names, a commit hash 或者 a tag name 都是可能的:

-e git://git.myproject.org/MyProject.git@master#egg=MyProject
-e git://git.myproject.org/MyProject.git@v1.0#egg=MyProject
-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

Mercurial

支持的体系: hg+httphg+httpshg+static-http and hg+ssh:

-e hg+http://hg.myproject.org/MyProject/#egg=MyProject
-e hg+https://hg.myproject.org/MyProject/#egg=MyProject
-e hg+ssh://hg@myproject.org/MyProject/#egg=MyProject

你也可以制定一个revision number, a revision hash, a tag name 或者a local branch name:

-e hg+http://hg.myproject.org/MyProject/@da39a3ee5e6b#egg=MyProject
-e hg+http://hg.myproject.org/MyProject/@2019#egg=MyProject
-e hg+http://hg.myproject.org/MyProject/@v1.0#egg=MyProject
-e hg+http://hg.myproject.org/MyProject/@special_feature#egg=MyProject

Bazaar

Pip 支持Bazaar 体系: bzr+httpbzr+httpsbzr+sshbzr+sftpbzr+ftp and bzr+lp :

-e bzr+http://bzr.myproject.org/MyProject/trunk/#egg=MyProject
-e bzr+sftp://user@myproject.org/MyProject/trunk/#egg=MyProject
-e bzr+ssh://user@myproject.org/MyProject/trunk/#egg=MyProject
-e bzr+ftp://user@myproject.org/MyProject/trunk/#egg=MyProject
-e bzr+lp:MyProject#egg=MyProject

Tags 和 revisions 安装如下:

-e bzr+https://bzr.myproject.org/MyProject/trunk/@2019#egg=MyProject
-e bzr+http://bzr.myproject.org/MyProject/trunk/@v1.0#egg=MyProject

Recursive Requirements

参考其他的需求文件,如:

-r Pylons-requirements.txt

这给了你一种抽象出需求集的方法。但是,这对 frozen requirements非常的不友好因为Pylons-requirements.txt 的一切信息豆浆显示在frozen file中.

Indexes, find-links

也可以在需求文件中为 --index-url 和 --find-links 选项提供值,如:

--index-url http://example.com/private-pypi/

注:

--index-url 移除了 PyPI,

--extra-index-url 添加额外的索引

--find-links 更 ad-hoc; instead of a complete “index”,你只需要一个HTML页面链接到可用的包。简单的通过将所有的私有包放在一个目录并且使用 Apache auto-index, 你就可以发布你自己的包,这样pip也可以找到它; --find-links 通常是附加的;

用法:

--find-links http://example.com/private-packages/

注意:

所有的这些选项必须在自己的一行

pip可识别的requirements.txt的写法相关推荐

  1. 【python】使用conda或pip 导出及安装requirements.txt

    文章目录 一. pip 1. 导出第三方库到requirements.txt 2. 安装requirements.txt中的第三方库 二. conda 1. 导出第三方库到requirements.t ...

  2. pip freeze获得的requirements.txt 出现了@这样的

    pip list --format=freeze > requirements.txt 解决方法 如上

  3. Python 用pip批量安装包 requirements.txt(python查看安装的第三方扩展包)| 利用requirements.txt离线安装依赖包

    文章目录 一.python用pip批量安装包 pip freeze 为什么比 pip list 的包少几个呢? 二.[推荐]使用pipreqs 写入requirements.txt 三.利用requi ...

  4. pip/conda导出 requirements.txt 注意事项

    pip 使用 pip freeze > ./requirements.txt 导出 requirements.txt 发现很多包没有版本号,而是 @ file:/// 使用pip list -- ...

  5. ERROR: Cannot install -r requirements.txt (line 2) and tensorflow>=1.14.0 because these package vers

    pip安装时出现问题 pip install --force-reinstall -r requirements.txt ERROR: Cannot install -r requirements.t ...

  6. Python中自动生成requirements.txt 及 安装requirements.txt依赖

    requirements.txt 说明 requirements.txt文件记录了当前程序的所有依赖包及其精确版本号 其作用是用来在另一台PC上重新构建项目所需要的运行环境依赖. 自动生成 自动生成依 ...

  7. Python生成依赖包文件requirements.txt并下载安装

    Python查看安装的包 pip list Python生成requirements.txt pip freeze > requirements.txt Python下载requirements ...

  8. pip freeze requirements.txt 分隔 sudo pip install -r requirements.txt

    要在新项目中安装,命令如下: sudo pip install -r requirements.txt 导出安装的组件版本: requirements.txt的内容: adium-theme-ubun ...

  9. pip和conda批量导出、安装第三方依赖库(requirements.txt)

    pip批量导出包含环境中所有组件的requirements.txt文件 pip freeze > requirements.txt pip批量安装requirements.txt文件中包含的组件 ...

  10. python显示安装失败_关于python:安装失败并显示Requirements.txt,但可用于pip安装...

    与使用pip直接安装时相比,在使用requirements.txt时出现一些奇怪的行为. 希望您能对此有所了解. 这可能与未解决的问题相同:pip install -r requirements.tx ...

最新文章

  1. 微信7.0.4内测版大更新!漂流瓶彻底成为历史
  2. 设置Tomcat字符集为utf-8
  3. 在VIM里面设置自动补全功能
  4. Things That Cannot Change
  5. $nextTick 源码
  6. android显示绘图动画,Android自定义View绘图实现渐隐动画
  7. coco数据集大小分类_Microsoft COCO 数据集
  8. .NET的轻量级IOC框架芮双随笔
  9. 5.1 vim介绍 5.2-5.3 vim颜色显示和移动光标、vim一般模式下移动光标 5.4 vim 一般模式下复制剪切粘贴...
  10. 还在为python远程控制电脑感到苦难?微信库:itchat带你一展风采
  11. HDU 2045 不容易系列之(3)―― LELE的RPG难题(递推)
  12. 在CentOS7上使用FastDFS搭建文件服务器
  13. 代码审查和不良编程习惯
  14. centos7-docker-swarmkit集群应用
  15. HDUOJ-------1753大明A+B(大数之小数加法)
  16. Struts2中的Actionsupport类
  17. 多线程编程warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 错误解决
  18. 福利:阿里巴巴Java开发手册(第2版)
  19. 在线文档查看器:Gleamtech Document Viewer 6.6.1
  20. GB28181平台对接接口详解

热门文章

  1. python程序设计基础第二版pdf下载_Python语言程序设计基础(第二版) 包含Python语言程序设计基础(第二版)pdf - 下载 - 搜珍网...
  2. 骨干考核系统系统流程及整体规则
  3. win10搭建无盘服务器配置,win10电脑搭建无盘工作站
  4. 2008 r2 server sql 中文版补丁_sql server 2008 r2 sp2
  5. 【asp】有效防止网站留言板出现垃圾留言/评论实现思路_ASP教程
  6. python中计算带分数_[NVDA addon] Access8Math 2.3 數學輔助程式 - 更新相容於 python3
  7. 探索Android FrameWork底层开发视频全套
  8. android 使用ffmpeg 调用命令实现视频转gif(ffmpeg 学习三)
  9. VSD Viewer for Mac(Visio绘图文件阅读器)
  10. tcpip详解卷一arp 地址解析协议