2011-07-15 66 views
0

我試圖編輯註冊表,所以當我鍵入無論是蟒蛇外殼或DOS窗口:運行Python代碼不帶路徑名

python sample.py 

我希望它去的目錄我保存我的.py文件並運行文件,而不必輸入:

python C:\PythonPractice\sample.py 

有什麼想法?

+0

意思是說,你不希望讓Python程序爲你做這件事嗎? – wberry

+0

查看該問題的答案: http://stackoverflow.com/questions/1934675/how-to-execute-python-scripts-in-windows – ton4eg

回答

0

對於DOS窗口:

set VARIABLE=yourpath 
python %VARIABLE%\sample.py 

因此,對於你的例子,你可以這樣做:進入 「控制面板」

set p=C:\PythonPractice 
python %p%\sample.py 

您可以設置此永久>> 「系統」> >「高級系統設置」>>「環境變量」。除非您希望它影響所有系統配置文件,否則您可能需要爲您的帳戶添加一個變量。可能需要重新啓動。

0
@echo off 
c: 
CD c:\py 
c:\python271\python.exe %1 

保存,作爲在DIR py.batPATH。將c:\ py更改爲腳本的目錄。

您可以從任何地方打電話給你的腳本是這樣的:

C:\Windows>py hallowelt.py 
Hallo! 
0

略有改善雅各布的回答是:

@echo off 
pushd c:\py 
c:\python271\python.exe %* 
popd 

保存爲在一個目錄中py.cmd從你的PATH環境變量。然後你可以撥打電話

py sample.py arg1 arg2 ... 

這適用於任何數量的參數。

但是,正如wberry提到的,你可以從你的Python腳本中更改工作目錄爲好,如果你真的需要(但我認爲這是一個壞主意):

os.chdir(os.path.abspath(os.path.dirname(__file__))) #untested 

雖然這ISN」 t完全是你的問題的答案,我推薦使用以下模式: 說,我有一個Python腳本c:\ mydir \ myprog.py需要特殊的環境變量(PATH,ORACLE_HOME,無論),也許它需要一個特定的工作目錄。

然後我在同一目錄下創建一個文件myprog.cmd

@echo off 
setlocal 
set PATH=... 
set ORACLE_HOME=... 
pushd %~dp0 
python %~dpn0.py %* 
popd 
endlocal 

的PUSHD/POPD部分改變和恢復的工作目錄。

對於的%〜...語法的解釋,在命令提示類型

help call 

這種方法可以完全控制Python程序的環境。 請注意,python調用是通用的:如果您需要第二個Python腳本otherprog.py,那麼只需將myprog.cmd的副本保存爲otherprog.cmd