我尝试在虚拟环境中使用
pipeqs
生成requirements.txt(virtualenv
)。
但是,我得到了如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 184:
ordinal not in range(128)
然后我尝试了:
pipreqs --encoding=utf-8
仍然出现错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa4 in position 64:
invalid start byte
不确定有人知道如何解决这个问题。
我得到了完全相同的错误。阅读 Theo 的答案,我在 venv 中找到了解决方法
pipreqs --ignore bin,etc,include,lib,lib64
尝试:
pipreqs --encoding=iso-8859-1
Pipreqs 仅对所有文件使用唯一的编码,因此指定特定的编码并不能解决所有问题(例如,参见此问题:截至目前,库中还没有动态确定编码的方法)。
因此,使用
pipreqs --encoding=iso-8859-1
可能会解决您的问题,但它也可能导致包含非 iso-8859-1 文件的其他模块崩溃(在我的例子中,ast
包)。
据我所知,对此没有干净的解决方案,但一个肮脏的解决方法可能是暂时注释源代码中的错误导入。
我必须运行以下命令来忽略虚拟环境目录:
pipreqs --ignore <env_dir>
就我而言,我跑了:
pipreqs --ignore .env