tur*_*nip 9 python subprocess pip
我正在编写一个需要使用pip安装依赖项的程序.这样做的正确方法是什么?为什么?
理想情况下,它需要与平台无关,但该程序将在Linux机器上运行.
pip.main()import pip
args = ['param1', 'param2']
version = 0.1
package = ['some_package=={}'.format(version)]
pip.main(['install'] + args + package)
Run Code Online (Sandbox Code Playgroud)
subprocess.call()import subprocess
import sys
version = 0.1
package = 'some_package'
subprocess.call([sys.executable, '-m', 'pip', 'install', '{}=={}'.format(package, version)])
Run Code Online (Sandbox Code Playgroud)
main()除非你想让他们拥有这个过程,否则不要打电话给别人.例如,他们可以打电话sys.exit()或其中一个os.exec*()功能.他们还可以安装信号处理程序,更改umask,或对进程的状态进行各种其他全局更改.如果您不希望它们执行此类操作,则应在子进程中运行其代码.
(当然,库代码可以很容易地完成上述所有操作,但是在没有记录它的情况下这样做被认为是"粗鲁",而main()函数的作者通常假设他们自己拥有整个过程.)
pip.main()不是公共接口,不受支持.使用子流程.
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |