问题描述
您好,我在使用Python中的pipreqs
库时遇到了麻烦。它不会生成正确的requirements.txt
文件。我使用的是Python虚拟环境,安装的唯一软件包是pipreqs
和selenium
,
pip install pipreqs
pip install selenium
项目结构:
MyProject
|- test.py
test.py
仅一行:
from selenium import webdriver
首先,当我这样做
pipreqs ./
我收到错误UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3474: character maps to <undefined>
我设法通过使用
pipreqs ./ --encoding=utf-8
但是现在生成的requirements.txt
与我的期望不符。我认为应该等于:
selenium==1.341.0
但这等于:
brotli==1.0.9
cryptography==3.2.1
ipaddr==2.2.0
lxml==4.6.1
mock==4.0.2
ordereddict==1.1
protobuf==3.13.0
pyOpenSSL==19.1.0
simplejson==3.17.2
现在,当我尝试克隆此代码并执行pip install -r requirements.txt
时,它不会安装selenium
并且该代码无法运行。
这是怎么回事?
解决方法
所以我遇到的问题是我的实际工作空间是:
MyProject
|- .venv // <- My Python Virtual Environment
|- test.py
我的Python虚拟环境位于我的Project文件夹中,因此当我运行命令时
pipreqs ./
它正在查看文件夹(包括我的虚拟环境)中所有文件的所有依赖关系,这就是为什么它生成了一个奇怪的requirements.txt
文件。
要解决此问题,我使用了pipreqs的选项--ignore
:
pipreqs ./ --ignore .venv
生成的requirements.txt
是:
selenium==3.141.0