具有某些本地文件位置的 pip 冻结要求
pip freeze requirements with some local file location
pip freeze > requirements.txt
我用这个命令生成了一些需求,但是结果带有一些本地文件位置。如何避免它们?
absl-py @ file:///home/conda/feedstock_root/build_artifacts/absl-py_1637088766493/work
aiohttp @ file:///D:/bld/aiohttp_1637087223487/work
aiosignal @ file:///home/conda/feedstock_root/build_artifacts/aiosignal_1636093929600/work
albumentations==1.1.0
async-timeout @ file:///home/conda/feedstock_root/build_artifacts/async-timeout_1637092647930/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1620387926260/work
autopep8==1.6.0
backcall==0.2.0
我不想要的“@file:///home/conda/feedstock_root/build_artifacts/attrs_1620387926260/work”。
我会尝试以下方法:
pip list --format=freeze > requirements.txt
编辑:不应将此方法用作答案,但在处理更复杂的情况下可能会有用。
为什么不尝试编写这种过滤的代码?
看看下面的代码:
import subprocess
output = subprocess.check_output(['pip', 'freeze']).decode().split('\r\n')
result = list(filter(lambda x: False if '@' in x else True, output))
print(result)
fname = 'requirements_test.txt'
with open(fname, mode='w', encoding='utf8') as f:
for row in result:
f.write(row + '\n')
pip freeze > requirements.txt
我用这个命令生成了一些需求,但是结果带有一些本地文件位置。如何避免它们?
absl-py @ file:///home/conda/feedstock_root/build_artifacts/absl-py_1637088766493/work
aiohttp @ file:///D:/bld/aiohttp_1637087223487/work
aiosignal @ file:///home/conda/feedstock_root/build_artifacts/aiosignal_1636093929600/work
albumentations==1.1.0
async-timeout @ file:///home/conda/feedstock_root/build_artifacts/async-timeout_1637092647930/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1620387926260/work
autopep8==1.6.0
backcall==0.2.0
我不想要的“@file:///home/conda/feedstock_root/build_artifacts/attrs_1620387926260/work”。
我会尝试以下方法:
pip list --format=freeze > requirements.txt
编辑:不应将此方法用作答案,但在处理更复杂的情况下可能会有用。
为什么不尝试编写这种过滤的代码?
看看下面的代码:
import subprocess
output = subprocess.check_output(['pip', 'freeze']).decode().split('\r\n')
result = list(filter(lambda x: False if '@' in x else True, output))
print(result)
fname = 'requirements_test.txt'
with open(fname, mode='w', encoding='utf8') as f:
for row in result:
f.write(row + '\n')