Pysintaller打包后,Python Subprocess.call()无法正常工作

时间:2016-09-22 19:59:14

标签: python subprocess pyinstaller

我是python和pyinstaller的新手,我正在构建一个小应用程序,其中我的main.py有两个按钮,单击时调用脚本,这是我的main.py文件:

import subprocess, button1script, button2script

qtCreatorFile = "notepad_grid.ui" 

Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)

class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.button1.clicked.connect(lambda:self.run('button1script.py'))
        self.button2.clicked.connect(lambda:self.run('button2script.py'))

    def run(self, path):
        subprocess.call(['python',path])


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

这个应用程序在使用pyinstaller打包之前工作正常,我可以运行main.py并单击按钮调用相应的脚本并打开新窗口。在我使用命令“pyinstaller --onedir”main.py“”运行pyinstaller后,主exe文件可以正常工作但是当我点击按钮时出现错误信息:

Traceback (most recent call last):
  File "MainApp.py", line 14, in <lambda>
  File "MainApp.py", line 18, in run
  File "subprocess.py", line 557, in call
  File "subprocess.py", line 947, in __init__
  File "subprocess.py", line 1224, in _execute_child
FileNotFoundError: [WinError 2] The system cannot find the file specified

运行pyinstaller时,所有文件都在同一个文件夹中。任何人都可以帮助弄清问题是什么?感谢

0 个答案:

没有答案