从另一个程序运行外部python程序

从另一个程序运行外部python程序,python,Python,我有一个python程序gold.py,位于ubuntu的/home/laxmi/Desktop/gold/gold.py。 我有一个python程序test.py作为 test.py import subprocess subprocess.Popen("python", "Desktop/gold/gold.py") 我希望此程序调用gold.py程序并显示gold.py的结果 错误 File "/usr/lib/python2.7/subprocess.py", line 660, i

我有一个python程序gold.py,位于ubuntu的/home/laxmi/Desktop/gold/gold.py。 我有一个python程序test.py作为 test.py

import subprocess
subprocess.Popen("python", "Desktop/gold/gold.py")
我希望此程序调用gold.py程序并显示gold.py的结果

错误

 File "/usr/lib/python2.7/subprocess.py", line 660, in __init__
raise TypeError("bufsize must be an integer")

您得到一个
类型错误
。因为您没有传递关键字参数,所以第二个参数是缓冲区大小,它必须是整数

更改:

subprocess.Popen("python", "Desktop/gold/gold.py") 
致:

这是您的文档。第一个参数,唯一需要的参数是
args

args应该是程序参数序列,或者是单个参数 一串默认情况下,要执行的程序是args中的第一项 如果args是一个序列。如果args是字符串,则解释为 平台相关,如下所述。请参阅shell和可执行文件 与默认行为的其他差异的参数。除非 否则,建议按顺序传递参数

注意:

如果传递单个字符串,则shell必须为True(见下文)或 否则,字符串必须简单地命名要执行的程序,而不使用 指定任何参数

因此,如果需要这样做,您可以:

subprocess.Popen("python Desktop/gold/gold.py", shell = True)

请在提供的链接中阅读有关此操作固有的安全风险。

请向我们显示实际错误。它最初不存在:/对于简单的命令,我喜欢使用
os.system('python your_program.py')
,因为它的用法非常简单。@LaxmiKadariya这是因为您传递了错误的路径名。我向你保证这是可行的。@Mikadariya确保这条路正是你所认为的。我只是进去试了试,以确保我没有遗漏什么,它工作正常。如何在ubuntu中以args给出路径名?@LaxmiKadariya进入终端,找到包含你的文件的文件夹,键入
pwd
for(打印工作目录)。将文件名添加到该文件中…我假设它看起来像:
~/Desktop/gold/gold.py
,如果不尝试:
/home/USERNAME/Desktop/gold/gold.py
,其中,
用户名
替换为您的用户名。@Steve这两个都不起作用。它说没有这样的文件或目录。此外,我在虚拟环境中工作,这就是问题所在吗?
subprocess.Popen("python Desktop/gold/gold.py", shell = True)