[英]Using `pip freeze > requirements` in Python code
我发现如何在代码中使用pip命令:
import subprocess
subprocess.call(["pip", "freeze"])
它在命令提示符下显示所有软件包。
但这不是这样的:
import subprocess
subprocess.call(["pip", "freeze", ">", "requirements.txt"])
它不会将其写入文件,而是再次在控制台中打印。
如何以正确的方式运行此命令?
用这个:
>>> with open('requirements.txt', 'w') as file_:
... subprocess.Popen(['pip', 'freeze'], stdout=file_).communicate()
...
或者,如果您愿意, call
>>> with open('requirements.txt', 'w') as file_:
... subprocess.call(['pip', 'freeze'], stdout=file_)
重定向是在shell /终端中实现的,这意味着必须在shell中使用shell=True
关键字参数执行命令。 否则,子进程将执行列表中的第一项,并将其余部分用作其参数。 有关更多信息,请参见子过程的文档 。
subprocess.call("pip freeze > requirements.txt", shell=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.