2015-02-07 78 views
0

我剛剛做了一個python程序,我使用py2exe寫入了一個exe文件。 之前,該代碼:.exe中的Python subprocess.call()

import subprocess 
subprocess.call("C:\Windows\system32\cmd.exe", shell=True) 

打開命令提示符。現在,當在exe中調用時,它會給出「系統找不到指定的路徑」。

我不知道爲什麼會這樣做,因爲命令提示符的路徑沒有改變。 任何人都可以幫助我嗎?

編輯:把事情放到角度看,項目這是可以找到here的一部分。 paths.txt是正在執行的路徑。 SpeechControl.py是主要文件。我想強調的是,當通過python命令行或cmd運行python腳本時,它確實工作得很好,但是當我使用py2exe將其製作爲可執行文件時,它不會。 該程序的想法是,一個可執行文件可以在語音命令上運行,而cmd.exe只是一個例子。我沒有提到這一點,但我也在測試一個spotify路徑,在我的情況下是「C:/Users/Olek/AppData/Roaming/Spotify/spotify.exe」。它給了相同的「系統找不到指定的路徑」消息。

+0

有時候,我只是用**使用os.system(「comman」)**,或者如果我需要一個對象來保存結果我使用* * obj = os.popen('command')。read()** – Olu 2015-02-07 09:58:20

+0

1.使用原始字符串文字:'r'''例如'r'C:\ Users \ ...''2.創建一個[ *最小*(例如,只有'subprocess.call'的腳本),但完整的代碼示例演示了您的問題](http://stackoverflow.com/help/mcve)3.'shell = True' *已經*在Windows上啓動'cmd.exe'。你想用這個代碼實現什麼? 4.不要把相關的信息放在你的問題的評論中 – jfs 2015-02-07 17:17:20

+0

@ J.F.Sebastian在我使用這個調用的程序中,它調用了一個變量。我將如何去做一個原始字符串文字的變量? – 2015-02-07 21:27:16

回答

0

你可以嘗試這樣的事情

#this executes the statement in a cmd hence launches a cmd inside a cmd 
os.system("C:/Windows/system32/cmd.exe") 
#or this holds a reference to the opened process 
result = os.popen("C:/Windows/system32/cmd.exe").read() 
#or this 
subprocess.call("C:/Windows/system32/cmd.exe", shell=True) 

好運