我有一个构建脚本(bash),它利用python pip
从远程获取需求并将其放入虚拟环境中。此构建脚本可以由另一个脚本调用,该脚本将使用任意数量的线程和不同的目标来调用它。这会导致为每次调用重新运行pip。它将尝试检查相同虚拟环境的相同要求。
这是否与pip
不相容?
答案 0 :(得分:0)
pip
都是浪费带宽和资源。
在virtualenv中,已安装的软件包保持安装状态。因此,您可以在存储标志的目录中设置标志或文件,检查您可以执行的标志pip
。这是一个更好的解决方案。
答案 1 :(得分:0)
根据this issue,pip应该主要是线程安全的,除非更新时存储库状态发生变化。
答案 2 :(得分:0)
由于此次讨论是Google首次曝光:pip不应被视为线程安全。另外,如果你没有在导入xthe pip包的线程中运行pip.main()
,那么在pip中调用pip时可能会导致异常。
运行pip.main()
也不是受支持的API。唯一推荐的方法是从subprocess.Popen()
或类似的方式调用pip。