详细版本见个人博客:Python项目生成requirements
一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个Python第三方包的list,一般都叫做requirements.txt。本文介绍了两种生成requirements.txt的方法。
一、使用pip freeze
pip freeze > requirements.txt
这种方式配合virtualenv才好使,否则把整个环境中的包都列出来了。
下面是在虚拟环境中生成的requirements.txt文件内容:
cat requirements.txt
certifi==2019.3.9
chardet==3.0.4
fake-useragent==0.1.11
idna==2.7
lxml==4.2.5
numpy==1.16.3
pandas==0.22.0
python-dateutil==2.8.0
pytz==2019.1
requests==2.20.0
six==1.12.0
urllib3==1.24.3
二、使用 pipreqs
这个工具通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单。此工具是基于imports,即你的项目引入了哪个包,此工具才会把引入的包写到requirements.txt中,要比pip freeze干净。这个工具的缺点是可能会有些偏差,需要检查并自己调整下。
pipreqs ./
有可能会报如下错误:
Traceback (most recent call last):
File "c:\program files\python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\program files\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python36\Scripts\pipreqs.exe\__main__.py", line 9, in <module>
File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 396, in main
init(args)
File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 341, in init
extra_ignore_dirs=extra_ignore_dirs)
File "c:\program files\python36\lib\site-packages\pipreqs\pipreqs.py", line 75, in get_all_imports
contents = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 12: illegal multibyte sequence
这是由于编码问题所导致的,加上encoding参数即可,如下:
pipreqs ./ --encoding=utf-8
下面我看下生成的requirements.txt文件内容:
cat requirements.txt
requests==2.20.0
fake_useragent==0.1.11
lxml==4.2.5
pandas==0.22.0
详细版本见个人博客:Python项目生成requirements
本文介绍了在Python项目中生成requirements.txt的两种方法:使用`pip freeze`和`pipreqs`。`pip freeze`可能列出所有环境中的包,而`pipreqs`通过扫描项目目录生成更精确的依赖清单,但可能需要手动调整。遇到编码问题时,使用`pipreqs`可添加参数解决。
6066

被折叠的 条评论
为什么被折叠?



