2012-11-20 64 views
2

我是一名Python初學者,而且我在從CMD運行Python時遇到問題。我已經將Python安裝目錄添加爲PATH變量(; C:\ Python27)。我能夠從CMD運行Python解釋器,但是當我從CMD發出像「python file.py命令」這樣的命令時,它會返回「Error2,Python無法打開,沒有這樣的文件/目錄」。在CMD中運行Python不起作用

所以我要做的是「cd C:\ Folder \ Folder2 \ My_Python_Files」,然後每次輸入「file.py命令」。有沒有更快或更有效的方式來做到這一點?我目前正在運行Python2.7在Windows 8

+2

包含你的'file.py'的文件夾添加到'PYTHONPATH'環境變量。 –

+1

當你鍵入'python file.py'時,'file.py'和當前目錄是什麼?將Python目錄添加到路徑中只是使Python本身可以在全局訪問;它不會使所有用Python編寫的程序自動訪問。您仍然必須與特定的Python文件位於相同的目錄中才能運行它(除非您執行更多的路徑操作)。 – BrenBarn

+0

Windows命令如何知道文件的位置而不指定絕對路徑? – scape

回答

3

當您運行python <script>時,它需要一個提供腳本的實際路徑。你不能單獨指定「file.py」,除非它在你的當前目錄中。

在Windows中,這裏有兩個步驟,你可以採取:

  1. 助理與蟒蛇.py文件。然後,你可以不python命令直接運行它們:/path/to/file.py
    ( - >屬性 - 右鍵單擊​​一個的.py>變化與python.exe關聯)

  2. 進一步的步驟:將位置添加到您的PATH環境,將包含您的Python腳本。從那裏,你可以做file.py,它會在你的搜索路徑中找到。
    因此,您可以將C:\Folder\Folder2\My_Python_Files添加到您的PATH,那就是您可以存儲可執行文件的Python腳本的地方。

您也可以一個shell會話中臨時設置PATH變量:

SET PATH=%PATH%;C:\path\to\project 
+0

我遵循了步驟#2並將C:\ Folder \ Folder2 \ My_Python_Files添加到我的PATH變量中,並且它工作正常。那麼它需要爲使用CMD訪問的每個腳本設置路徑?謝謝,你一直很有幫助:) –

+0

通常,當你想讓命令行腳本可用於整個系統時,你可以將它放在系統PATH位置。這與'POSIX'一樣。但在'POSIX'中我們有符號鏈接,這意味着您可以簡單地將其鏈接到系統路徑位置。這裏最好的選擇就是在準備好的時候將其複製到系統路徑中,在開發過程中,您應該直接使用路徑進行操作。或者,像你說的那樣......將它們添加到你的道路上。您可以通過'SET PATH =%PATH%; C:\ path \ to \ project'臨時設置PATH – jdi

2

就像PATH環境變量中列出了系統的多個目錄中搜索可執行文件,該PYTHONPATH做同樣的Python搜索.py文件。如果您希望某個文件夾中的腳本可以全局訪問(即您可以按照您的需要按名稱引用它們,或者可以從其他腳本導入它們),請將該文件夾添加到PYTHONPATH(如果該文件夾不存在,請創建該文件夾)。

注意,命令調用的腳本是在你的PYTHONPATH是:

python -m file [<script arguments>] 

(即使用-m選項,可將它作爲一個module,並且不使用擴展.py

這裏的an article更詳細地解釋了Python如何找到它的源文件(無論是在命令行還是通過import)。

請注意,您還可以使用它的完整路徑是指該腳本:

python C:\Folder\Folder2\My_Python_Files\file.py command 

但是通過這樣做,在同一個文件夾中的其他文件,該腳本可以通過import引用可能無法正常工作(因爲Python不知道在哪裏搜索它們)。

+1

這是很好的信息,但它實際上與PYTHONPATH無關。這意味着進口。 OP正在嘗試將它們作爲入口點,這意味着它必須處理'PATH'。 – jdi

+0

你說得對,我沒注意到!但是我相信如果'file.py'在PYTHONPATH中,你可以使用'python -m file'(不帶'.py')來訪問它,這是否正確?我會檢查並更新答案。 – mgibsonbr

+0

我已經創建了PYTHONPATH變量並放在我的「file.py」所在的目錄中。當我嘗試訪問CMD時,它仍然返回相同的錯誤,「沒有這樣的文件存在」 –

0

       除非項目的文件夾位於PATH中,否則只有在項目文件夾內時才能調用該文件。除非需要,否則不要爲項目創建PATH;這是沒有必要的。

     僅橫切文件目錄並在目錄內運行命令。那可行。

       如果項目將被其他項目/文件使用,則可以使用PYTHONPATH設置目錄,以便其他項目可以成功訪問它。

     希望有所幫助。

+0

感謝您的幫助,我能夠通過將其添加到PATH來運行它。 –

+0

如果所有答案都有幫助,請將它們全部加滿,並選擇其中一個作爲接受的答案;這有助於你和後來可能會遇到類似問題的其他人。 –

+0

由於我帳戶的新穎性,我仍然無法投票回答問題。將盡快這樣做。謝謝! –