详解python中requirements.txt的一切

 更新时间:2017年03月03日 10:51:39   作者:kdwycz  
最近学习到了python中的requirements.txt,或许是因为太简单了,网上没有搜到比较完整的介绍,所以这篇文章主要介绍了关于python中requirements.txt的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

简介

Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

主要的写法如下所示

pip freeze > requirements.txt # 生成requirements.txt
pip install -r requirements.txt # 从requirements.txt安装依赖

支持的写法

-r base.txt # base.txt下面的所有包
pypinyin==0.12.0 # 指定版本(最日常的写法)
django-querycount>=0.5.0 # 大于某个版本
django-debug-toolbar>=1.3.1,<=1.3.3 # 版本范围
ipython # 默认(存在不替换,不存在安装最新版)

第三方工具生成

pip freeze 会附带上一些不需要的包,以及某些包依赖的包~

    pipreqs 自动分析项目中引用的包。对Django项目自动构建的时候忽略了Mysql包,版本也很奇怪;而且联网搜索的时候遇到404就报错跳出了😂

    pigar 功能同上,会显示包被项目文件引用的地方(搜索下就能解决的问题啊= =感觉是伪需求),404的问题也存在

    pip-tools 通过第三方文件生成requirements.txt,讲道理为什么不直接写呢,要通过第三方包来做一层转换

推荐用法

一般项目会分为开发环境,测试环境,生产环境等……依赖的包会不同。推荐在文件夹下为每个环境建立一个requirements.txt文件。公有的包存在base.txt供引用

➜ meeting git:(sync) ✗ tree requirements -h
requirements
├── [ 286] base.txt
├── [ 80] local.txt
└── [ 28] production.txt

由于上面提到的工具并不好用~还是推荐手动维护依赖列表。毕竟pip安装后马上去编辑下依赖文件也不是什么麻烦事

setup.py 与 requirements.txt 区别

setup.py 这个文件是用来管理模块的,你可以将你的项目打包为模块上传到 pypi 中,也同样能将项目作为模块放入python 的系统加载模块目录下。

requiremens.txt 这个文件是列举你这个项目引用了哪些非本项目的依赖的,除此之外,没有其他作用。

因此,可以看出这两个项目其实并没有冲突关系,而且有很大共存的必要。

  1. 假如你的项目需要保存为系统模块,或者可安装为系统命令的 setup.py 就必不可少了
  2. 假如你的项目是可以直接运行的,那么 requirements.txt 也是必不可少。
  3. 如果你两种功能都需要,那么就两个文件都不能少。

有这两种功能都需要的么?

必须有啊,而且还很多,例如 Flask,他就支持两种方式:

  1. 以系统命令的方式启动,在 Flask 0.11.1 中新加入了一个 Click 包,他可以让你 setup 之后以命令的方式运行
  2. 直接运行,传统的 Flask 启动方式一般就是 app.run() 或者 python manage.py runserver

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • pyautogui库的使用及说明

    pyautogui库的使用及说明

    PyAutoGUI实现鼠标键盘自动化控制,支持移动、点击、热键、输入等操作,提供截图定位、消息框功能,适用于自动化任务及界面交互
    2025-09-09
  • 使用Django搭建网站实现商品分页功能

    使用Django搭建网站实现商品分页功能

    这篇文章主要介绍了使用Django搭建网站实现商品分页功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 用Python解数独的方法示例

    用Python解数独的方法示例

    这篇文章主要介绍了用Python解数独的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python实现发送和获取手机短信验证码

    python实现发送和获取手机短信验证码

    这篇文章主要介绍了python实现发送和获取手机短信验证码的相关资料,讲解了python如何解决接口测试获取手机验证码问题,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • python中pow函数用法及功能说明

    python中pow函数用法及功能说明

    在本篇文章里小编给大家整理的是一篇关于python中pow函数用法及功能说明内容,有需要的朋友们可以学习下。
    2020-12-12
  • python 中的divmod数字处理函数浅析

    python 中的divmod数字处理函数浅析

    这篇文章主要介绍了python divmod数字处理函数的相关资料,感兴趣的朋友一起看看吧
    2017-10-10
  • python批量替换文件名中的共同字符实例

    python批量替换文件名中的共同字符实例

    这篇文章主要介绍了python批量替换文件名中的共同字符实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python虚拟环境创建和使用方法(使用自带的venv模块)

    Python虚拟环境创建和使用方法(使用自带的venv模块)

    这篇文章主要如何在Python中使用虚拟环境,包括创建、激活、使用、生成requirements.txt文件、卸载包和删除虚拟环境,虚拟环境有助于隔离项目依赖,避免版本冲突,并便于部署,需要的朋友可以参考下
    2024-12-12
  • Python  OpenCV实现摄像头人脸识别功能

    Python  OpenCV实现摄像头人脸识别功能

    这篇文章主要介绍了Python  OpenCV实现摄像头人脸识别,使用Python 3和OpenCV进行摄像头人脸识别的基本步骤,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Python中的异常处理相关语句基础学习笔记

    Python中的异常处理相关语句基础学习笔记

    这里我们简单整理一下Python中的异常处理相关语句基础学习笔记,包括try...except与assert等基本语句的用法讲解:
    2016-07-07

最新评论