Val*_*nal 7 python package requirements.txt
您好,我在使用 Python 库时遇到问题pipreqs。它不会生成正确的requirements.txt文件。我正在使用 Python 虚拟环境,我安装的唯一软件包是pipreqs和selenium
pip install pipreqs
pip install selenium
Run Code Online (Sandbox Code Playgroud)
项目结构:
MyProject
|- test.py
Run Code Online (Sandbox Code Playgroud)
并且test.py只有一行:
pip install pipreqs
pip install selenium
Run Code Online (Sandbox Code Playgroud)
首先当我这样做的时候
pipreqs ./
Run Code Online (Sandbox Code Playgroud)
我遇到了错误UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3474: character maps to <undefined>
,我设法通过使用解决了
pipreqs ./ --encoding=utf-8
Run Code Online (Sandbox Code Playgroud)
但现在requirements.txt生成的结果与我的期望不符。在我看来,它应该等于:
selenium==1.341.0
Run Code Online (Sandbox Code Playgroud)
但它等于:
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
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试克隆此代码并执行它时,pip install -r requirements.txt它不会安装selenium,并且代码不会运行。
这里发生了什么事?
Val*_*nal 15
所以我遇到的问题是我的实际工作空间是:
MyProject
|- .venv // <- My Python Virtual Environment
|- test.py
Run Code Online (Sandbox Code Playgroud)
我的 Python 虚拟环境位于我的项目文件夹中,因此当我运行命令时
pipreqs ./
Run Code Online (Sandbox Code Playgroud)
它正在查看文件夹中所有文件(包括我的虚拟环境)的所有依赖关系,这就是它生成一个奇怪requirements.txt文件的原因。
为了解决这个问题,我使用了--ignorepipreqs 选项:
pipreqs ./ --ignore .venv
Run Code Online (Sandbox Code Playgroud)
生成的结果requirements.txt是:
selenium==3.141.0
Run Code Online (Sandbox Code Playgroud)
您可能还想忽略导致此类问题的其他文件夹:
pipreqs --ignore bin,etc,include,lib,lib64,.venv
Run Code Online (Sandbox Code Playgroud)
--force 标签也会覆盖现有的requirements.txt