Pipreqs生成的requirements.txt文件不正确。

6
你好,我遇到了一个在Python中使用pipreqs库时的问题。它不能生成正确的requirements.txt文件。我正在使用Python虚拟环境,并且我的安装包列表只有pipreqsselenium
pip install pipreqs
pip install selenium

项目结构:

MyProject
 |- test.py

而且 test.py 只有一行代码:

from selenium import webdriver

首先,当我执行以下操作时:

pipreqs ./

我遇到了错误UnicodeDecodeError: 'charmap'编解码器无法解码位置3474的字节0x81:字符映射为<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,代码无法运行。

这里发生了什么?

1个回答

13

我的问题是我的实际工作空间是:

MyProject
 |- .venv   // <- My Python Virtual Environment
 |- test.py

我的Python虚拟环境位于项目文件夹中,因此当我运行命令时

pipreqs ./

它正在查看文件夹中所有文件的所有依赖项(包括我的虚拟环境),这就是为什么它生成了一个奇怪的requirements.txt文件。

为了解决这个问题,我使用了pipreqs的选项--ignore

pipreqs ./ --ignore .venv

生成的 requirements.txt 如下:

selenium==3.141.0

您可能还想忽略其他导致此类问题的文件夹:

pipreqs --ignore bin,etc,include,lib,lib64,.venv

--force标签还将覆盖现有的requirements.txt文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接