我有一个基于setuptools的Python(3.5)项目,其中包含多个脚本作为类似于以下内容的入口点:
entry_points={
'console_scripts': [
'main-prog=scripts.prog:main',
'prog-viewer=scripts.prog_viewer:main'
]}
所以应该有一个主脚本,运行为main-prog
和一个辅助脚本prog-viewer
(它做一些Tk的东西)。
问题是,我希望能够在prog-viewer
的{{1}}子进程中运行Popen
(或者更确切地说,形成我的库),而无需手动找出路径然后适应不同的操作系统。另外,当我的PATH包含一个不属于我的库的同名脚本时,我该怎么办?我可以告诉我的程序main-prog
吗?
答案 0 :(得分:2)
您可以使用Popen运行python命令,例如:
Popen('python -c "from scripts.prog import main; main()"', shell=True)
答案 1 :(得分:0)
您可以使用“多处理”模块,该模块还将把代码作为子进程运行。例如,
from multiprocessing import Process
from scripts.prog import main
# or
# from pkg_resources import load_entry_point
# main = load_entry_point('your-package', 'console_scripts', 'main_prog')
p = Process(main)
p.start()
p.join()