Pipreqs requirements.txt不正确

问题描述

您好,我在使用Python中的pipreqs库时遇到了麻烦。它不会生成正确的requirements.txt文件。我使用的是Python虚拟环境,安装的唯一软件包是pipreqsselenium

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...