目录

  • 前提
  • 备注
  • 问题
  • 原因
  • 解决
  • 复原项目中的环境
  • 参考


前提

当我们要将自己项目发送给别人或者换电脑进行重新运行时,相信大家对于重新配置环境会非常头疼,因为不同包的版本可能会出现不兼容,因此大家肯定希望得到的python项目中存在一个环境配置说明

备注

  • 本文介绍的环境: windows10,python项目(举例:Flask,使用conda创建Flask虚拟环境)

问题

① pyhon中提供了pip freeze > requirements.txt可以帮助我们快速的实现项目环境的导出

② 然后我们就可以进入项目所在的环境执行代码:

pip3 requirement导出 pipfile生成_pip3 requirement导出

进入所在路径打开requirements.txt文件夹,如下:

pip3 requirement导出 pipfile生成_flask_02


惊讶发现!这些都是啥!!根本不是我们所想要的,我们希望得到的是类似如下的内容:

cffi==1.15.0
click==8.0.4
colorama==0.4.4
et-xmlfile==1.0.1
Flask==2.0.3
...

原因

后来通过网上查资料得到原因:

  • 自pip版本19.1后,pip支持这种生成@file:///URL这种形式的环境路径
  • 限制:pip生成的这种环境路径,仅支持在本地文件系统中使用,不能拷贝给他人使用

解决

现在我们的需求是希望将项目环境版本拷贝给他人,实现能够安装使用,可执行如下的命令:

pip list --format=freeze > requirements.txt

此时,在查看requirements.txt文件内容:

pip3 requirement导出 pipfile生成_pip3 requirement导出_03


这时候,我们发现文件中有原始环境的包,如pip,setuptools,wheel等,将其手动删除即可

复原项目中的环境

此时,我们在另一台电脑中可执行如下命令进行环境的pip3 requirement导出 pipfile生成_python_04:
命令①(默认pip的源,可能会很慢,如果你为更改默认的pip源的话):
pip install -r requirements.txt命令②(使用清华源,也可以为其他的):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 在这里提供下豆瓣源
-i https://pypi.douban.com/simple/

参考

[1]

pip3 requirement导出 pipfile生成_flask_05