【问题标题】:How to install setup.py at runtime如何在运行时安装 setup.py
【发布时间】:2021-03-07 08:08:15
【问题描述】:

我有一个用于 python 的 c++ 扩展模块(比如说 test.so)。 我认为在我的脚本中导入它的正确方法是使用:

python setup.py install

然后运行:

python myscript.py (in which import test is called)

但是,我想在 python 子进程中调用我的脚本。那么如何在 Popen 中结合这两个命令呢?是否可以在 myscript.py 中调用 install setup.py。
此外,是否可以在非当前目录调用 python setup.py install with test.so

【问题讨论】:

  • 请一次问一个问题。无论如何,这听起来像是XY problem。如果您的 C++ 模块需要编译等,setup.py install 中可能会出现大量错误,因此将安装与执行分离是有意义的。如果您愿意,可以为您的目标平台打包所有已编译的二进制形式。

标签: python subprocess setup.py


【解决方案1】:

最好使用run() 而不是Popen()

import subprocess
subprocess.run(['python', 'setup.py', 'install'])
subprocess.run(['python', 'myscript.py'])

要打开文件,您可以使用Popen()

import subprocess
import sys
subprocess.Popen([sys.executable, "<file-name with location>"]).communicate()

【讨论】:

  • 感谢您的帮助。但是如何使用 subprocess.run() 安装模块并同时调用我的脚本?在第一个子进程完成并被杀死后,模块对我的脚本(在第二个子进程中运行)不可见吗?
猜你喜欢
  • 2019-07-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 2017-05-03
  • 2011-12-23
  • 1970-01-01
  • 2016-02-24
相关资源
最近更新 更多