如何从另一个python脚本执行python命令?

我在Python有一个测试环境。它由命令提示符上的以下命令执行。
1)首先,我必须转到.py文件所在的DIR
2)然后我只是执行python filename.py和GUI出现
现在,我必须创建一个可以打开gui的脚本...即从内部自身执行命令" python filename.py"。我在脚本内尝试了"系统"命令,但GUI没有出现。I.e我尝试了
系统(" python filename.py"),但屏幕上什么也没有出现
请帮助。

# 回答1


如果这看起来太基本,请原谅我,但是如果没有完整的代码或输出来检查我正在伸展,您是否导入OS?例如,如果test.py包含

选择 | 换行 | 行号
  1. import os
  2. os.system('python hello.py')

hello.py只是打印你好,然后

选择 | 换行 | 行号
  1. C:\tmp>python test.py
  2. hello

除非还有其他路径或模块问题,否则应该做您要问的事情。当您说GUI没有出现时,会发生什么吗?有错误吗?
Python
"流程管理"
文档可能会有所帮助。

# 回答2


从您的脚本运行另一个Python脚本:

选择 | 换行 | 行号
  1. import myscript
  2. myscript.somefunc()
  3.  

就像导入标准模块一样。

# 回答3


thanx进行及时的答复...但是正如您所问的...我已经导入OS并从我的Python脚本执行了以下命令:
OS.System(" Python filename.py")
没有标记错误消息,并且该命令已成功执行,导致命令提示符再次执行,但GUI没有出现。
可能是什么原因。
最初,我曾经通过简单地输入来运行GUI:
python filename.py
# 回答4


您的GUI TKINTER还是其他工具包?
# 回答5


我不知道该工具套件...
它是用于一些测试的pupose。我将测试文件加载到其中,然后按Runtest按钮。
# 回答6


有机会,当您手动致电Python时,您是否会提供命令行论证?如果是这样,请尝试

选择 | 换行 | 行号
  1. system("python filename.py arg1 arg2") 
# 回答7


没有命令行参数。我刚刚在手动运行GUI时从命令提示符中运行Python filename.py。
# 回答8


就我个人而言,我不建议从Anther调用Python脚本的方法。 "清洁"方法是导入它。
例如,在称为myScripta.py的脚本中,您有

选择 | 换行 | 行号
  1. def displayGUI():
  2.      print "I am from myscriptA.py in functoin displayGUI"
  3.      return
  4.  

然后在myScriptB.py中,您可以像这样调用您的GUI显示功能

选择 | 换行 | 行号
  1. import myscriptA ##or from myscriptA import displayGUI
  2. myscriptA.displayGUI()
  3.  
# 回答9


嗨,我只是想跟随并有一个问题.....您的脚本会在DOS窗口中运行,但是您想要的是要在空闲上运行吗?
前任:

选择 | 换行 | 行号
  1. >>> for i in range(5):
  2.              print i
  3.  
  4.  
  5. 1
  6. 2
  7. 3
  8. 4
  9. >>>
  10.  
  11.  

因此,如果您将该脚本保存为loop.py:

选择 | 换行 | 行号
  1. for i in range(5):
  2.     print i
  3.  

然后写道:

选择 | 换行 | 行号
  1. import os,sys
  2. os.system(r"C:\python25\loop.py")
  3.  

然后将其保存为testrun.py。如果您执行testrun.py,它将在DOS窗口中运行循环,但您希望它执行并打印出空闲?是吗,还是我在尝试关注时走错了轨道?

# 回答10


你好...
我想我的问题还不清楚...
我有一个测试环境。当DOS窗口上我键入以下命令时,将出现环境的GUI:
python filename.py
出现一个窗口,我可以在其中加载测试,然后单击GUI中的选项卡,该选项卡上说运行测试。
现在情况是...我应该做一些初始 在加载测试之前的l处理.....这包括通过Python脚本打开CSV文件,读取CSV文件的特定行,从那里读取输入,然后将测试文件加载到GUI中。
因此,我应该在所有这些处理后打开GUI ...从Python脚本,而不再通过在DOS窗口上键入命令。
我尝试执行相同的命令:python filename.py从python脚本类似:
导入操作系统
OS.System(" Python filename.py")
但是它没有wrk ...
我做什么
# 回答11


这是一个基本的TKINTER GUI PORRAM,除了在框架中放一个按钮以外,什么都不做:

选择 | 换行 | 行号
  1. # TkButtonFrame.py'
  2. from Tkinter import *
  3.  
  4. class TestFrame(Frame):
  5.     def __init__(self, parent, *args, **kwargs):
  6.         Frame.__init__(self, parent)
  7.         self.testButton = Button(text='Run Test')
  8.         self.testButton.pack()
  9.  
  10.  
  11.  
  12. if __name__ == "__main__":
  13.     root = Tk()
  14.     testFrame = TestFrame(root)
  15.     testFrame.pack()
  16.     root.mainloop()
  17.  

它确实有__ -main__"守卫",我认为可能会引起问题。
这是命令模块:

选择 | 换行 | 行号
  1. # rungui.py
  2. import os
  3. os.system('python TkButtonFrame.py')
  4.  

如果您运行命令rungui.py,则将出现GUI。
如果看起来像您的测试程序,则用来使其成为tkinter的工具包。
如果您将这些模块放入测试环境中,并且它们不起作用,那么(很可能是PythonPath)无法正确设置。

# 回答12


重要的是要注意

选择 | 换行 | 行号
  1. import TkButtonFrame

由于__name__ ==" __ -main __":guard。

# 回答13


我的测试文件的__ -main __看起来像这样:

选择 | 换行 | 行号
  1. # if running standalone
  2. if __name__ == "__main__":
  3.     app = MyApp(0)  # Create an instance of the application class
  4.     app.MainLoop()  # Tell it to start processing events
  5.  
  6. # End of Program
# 回答14


我已经在您的帖子中添加了代码标签。请阅读"回复指南",以了解如何做到这一点。
那么如何定义班级MyApp?
# 回答15


Myaapp类如下:

选择 | 换行 | 行号
  1.  
  2. class MyApp(wx.App):
  3.     # wxWindows calls this method to initialize the application
  4.     def OnInit(self, operator=None):
  5.  
  6.         # Create an instance of our customized Frame class
  7.         frame = MyFrame(None, -1, "PetShopTest")
  8.         frame.Show(1)
  9.         # and let wxWindows know that is our main window...
  10.         self.SetTopWindow(frame)
  11.  
  12.         # we need to return a success flag (to keep wxWindows happy)...
  13.         return 1
  14.  
  15.  
# 回答16


惊人的!您的GUI工具包是WXPYTHON。我认为这是最好的。
从此
应该
工作,只能有一个第一个复数,为什么不这样做:
Python不知道如何找到您的程序(您一直在称其为" filename.py)。您可能需要指定命令中的整个路径。在Windows上使用RAW字符串:Windows名称:

选择 | 换行 | 行号
  1. r"D:\Python24\Lib\filename.py"

或者,您可以将路径添加到操作系统中称为PythonPath的环境变量。或者,您可以将路径放入任何名称(se)toutpath.pth的文件中,d:\ python24 \ lib \ lib \ site-packages(在我的系统)目录中。 .pth扩展名告诉Python将Whaterver在该文件中添加到SYS.Path。

# 回答17


兄弟在cmd中使用" py",而不是" python"。如果它有效,或者您可能需要设置路径。
它只是一个假设。 :))

标签: python

添加新评论