Python保存环境(导出requirements.txt文件)


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

python

Python保存环境(导出requirements.txt文件)

在深度学习场景中,我们经过会遇到需要保存环境的时候,例如将代码共享给他人的时候,需要导出一个requirements.txt文件,让其他人知道运行该代码所需要的python包依赖。本文主要介绍一些常见的导出python环境的方法和工具。

1. 使用pip包导出

(1)pip freezen > requirements.txt

该方法导出的的requirements.txt包含安装包所在路径,常用于一些大型项目的环境保存,一般大型项目会加载和运行多个环境,这个时候每个环境对应的位置也需要告知。

pip freezen > requirements.txt

(2)pip list --format=freeze >requirement.txt

该方法导出的requirements.txt不包含安装包所在路径,与常见的requirements.txt非常类似。

以上两种方法,导出的都是该环境里面所有安装的python包,但是有些包并不是该项目中所必备的依赖,有时候导出的一些包并不是项目运行所必要的。

pip list --format=freeze >requirement.txt

(3)使用pip和requirements.txt安装包

使用以下命令安装依赖包:

pip install -r requirements.txt

2.使用conda导出

如果使用conda管理环境,也可以使用conda命令导出和安装python依赖

(1)conda list -e > requirements.txt

使用以下命令导出requirements.txt文件

conda list -e > requirements.txt

若要使用conda安装requirements.txt文件,使用以下命令安装依赖:

conda install --yes --file requirements.txt

(2)conda env export > freeze.yml

还可以通过conda导出yaml文件的方式来导出环境,命令如下:

conda env export > freeze.yml

导出的yaml文件使用如下命令安装:

conda env create -f freeze.yml

3. 使用pipreqs包导出(建议)

以上两种方法导出的都是整个安装环境,但是有时候一个项目并不需要安装环境里面所有的依赖,建议使用pipreqs包导出requirements.txt文件。

使用 pipreqs 可以自动检索到当前项目下的所有组件及其版本,并生成 requirements.txt 文件,极大方便了项目迁移和部署的包管理。相比直接用 requirements.txt 命令,能直接隔离其它项目的包生成。
使用如下命令安装pipreqs:

pip install pipreqs
Usage:
    pipreqs [options] <path>

Options:
    --use-local           Use ONLY local package info instead of querying PyPI
    --pypi-server <url>   Use custom PyPi server
    --proxy <url>         Use Proxy, parameter will be passed to requests library. You can also just set the
                          environments parameter in your terminal:
                          $ export HTTP_PROXY="http://10.10.1.10:3128"
                          $ export HTTPS_PROXY="https://10.10.1.10:1080"
    --debug               Print debug information
    --ignore <dirs>...    Ignore extra directories
    --encoding <charset>  Use encoding parameter for file open
    --savepath <file>     Save the list of requirements in the given file
    --print               Output the list of requirements in the standard output
    --force               Overwrite existing requirements.txt
    --diff <file>         Compare modules in requirements.txt to project imports.
    --clean <file>        Clean up requirements.txt by removing modules that are not imported in project.
    --no-pin              Omit version of output packages.

使用如下命令导出requirements.txt文件:

pipreqs ./

如果是在Windows环境下,建议使用如下命令导出requirements.txt文件:

pipreqs ./ --encoding=utf-8

如果环境中存在requirements.txt文件,需要使用以下命令导出requirements.txt文件:

pipreqs ./ --encoding=utf-8 --force

参考文献

[1] python 中导出requirements.txt 的几种方法 https://blog.csdn.net/weixin_40964777/article/details/126086367
[2] pipreqs https://www.jianshu.com/p/5c30f7c5aa34


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

### 如何在Python项目中生成或导出requirements.txt文件Python项目中,`requirements.txt` 文件通常用来记录项目的依赖项及其版本号。以下是几种常见的方法来生成或导出 `requirements.txt` 文件。 #### 使用pip工具生成requirements.txt 最常用的方法是通过 `pip freeze` 命令将当前虚拟环境中的所有已安装包及其版本写入到 `requirements.txt` 中[^4]。 ```bash pip freeze > requirements.txt ``` 此命令会捕获当前环境中所有的第三方库并将其保存至指定路径下的 `requirements.txt` 文件中。需要注意的是,这种方法可能会包含一些不必要的依赖项(即并非由开发者显式引入的间接依赖),因此可能需要手动清理无关条目。 #### 利用PDM管理器生成requirements.txt 对于采用 PDM 作为包管理工具的情况,则可以利用其内置功能转换成标准形式的需求文档。具体操作如下所示: ```bash pdm export -o requirements.txt --without-hashes ``` 上述指令能够把基于 pyproject.toml 的定义转化为传统的 pip 风格描述符列表,并忽略掉哈希校验部分以便于分享给其他使用者加载相同的依赖关系树结构[^5]。 另外,在某些特殊场景下如果希望保留安全验证机制的话也可以去掉最后那个参数选项从而连同 sha256sum 一起输出进去形成更完整的锁定表述方式供后续部署阶段做一致性检查之用途。 #### 在Next.js项目环境下处理依赖关系 虽然 Next.js 主要是一个 JavaScript 框架,但是当涉及到 Python 后端服务集成或者数据预处理脚本时同样适用以上原则去维护各自的外部资源清单表单。例如按照前面提到过的创建博客站点实例之后切换进入对应的工作区再执行相应构建动作之前先确保已经整理好了所需的全部 python 库件集合信息存档下来方便以后重复使用以及团队协作交流共享目的达成一致效果最佳实践方案推荐做法之一就是提前准备好这么一份详尽无遗且精确匹配实际需求状况的标准格式化文本档案资料以备不时只需简单一句命令即可快速恢复整个工程所需的一切软硬件设施条件准备完毕状态随时待命投入实战演练环节当中去了[^3]. ```python import subprocess def generate_requirements(): try: result = subprocess.run(['pip', 'freeze'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) with open('requirements.txt', 'w') as f: f.write(result.stdout) print("Generated requirements.txt successfully.") except Exception as e: print(f"An error occurred while generating requirements.txt: {e}") if __name__ == "__main__": generate_requirements() ``` 该段代码展示了一个简单的函数实现自动调用系统 shell 并完成相同任务的过程演示例子仅供参考学习模仿改进优化提升效率减少人为失误概率增加自动化程度提高生产力水平促进持续交付流程顺畅运转下去不断进步成长壮大起来成为行业领先者标杆典范形象代表人物角色定位目标追求方向指引灯塔照亮前行道路引领未来趋势潮流走向高峰顶端极致完美境界成就非凡伟业辉煌篇章永载史册流传千古万代敬仰膜拜效仿追随榜样模范典型示范作用发挥出来影响深远广泛传播开来深入人心家喻户晓妇孺皆知人人知晓共同前进共创美好明天伟大梦想早日实现!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chaos_Wang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值