簡體   English   中英

終端中的Python

[英]Python in terminal

這個問題涉及在終端中運行未存儲在主目錄中的python文件。 我想通過修改我的路徑來解決這個難題的第一部分,以便它包含我的python程序存儲的目錄。

所以最初echo $PATH會產生以下結果: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

它現在產生: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/paulpatterson/Documents/Python

但是,盡管現在我的路徑中存在正確的文件夾,但此文件夾中沒有任何python文件運行。 例如,有一個名為recap.py的文件,當我打開終端並鍵入: python recap.py我得到:

python: can't open file 'recap.py': [Errno 2] No such file or directory

如果我只輸入recap.py (即省略'python'位),我得到: -bash: /Users/paulpatterson/Documents/Python/recap.py: Permission denied

任何人都可以開導我嗎? 理想情況下,我想設置它,所以一旦終端打開,我需要做的就是輸入文件名,甚至不輸入python。

我花了好幾個小時試圖解決這個問題,任何幫助都表示贊賞。

保羅。

在$ PATH中包含命令所在的目錄意味着您可以從任何地方在該目錄中運行命令。 但是在你的第一個例子中,你運行命令“python”,將recap.py作為參數。 所以你的shell不會搜索$ PATH來查找recap.py所在的位置。 要將recap.py作為命令單獨運行,請參閱:

http://en.wikipedia.org/wiki/Shebang_(Unix)

簡而言之,您需要將#!/usr/bin/env python作為第一行包含,並將該文件chmod為可執行文件( chmod u+x recap.py )。

您之前可能已經嘗試過這種方法,但我在某個方面遇到了類似的問題,這是適合我的過程。 在存儲recap.py的目錄中:

chmod +x recap.py
./recap.py

./是關鍵部分,因為它作為目錄的完整路徑。 這也假定你有

#!/usr/bin/env python

或類似於程序第一行的內容。 前兩個字符的第一行稱為shebang ,表示該文件是由其后面的路徑指定的解釋器執行的腳本。 所以,正如其他人所建議的那樣,你的python解釋器可能位於/ usr / bin以外的某個地方(可能在/ bin中),所以你需要找到它,並在你想要的任何python腳本的頂部包含這一行。從終端執行。

如果你不知道python的位置,你可以使用:

which python

在終端,它應該打印你的python安裝的路徑。 然后,您可以在shebang之后使用該路徑。

確保每個腳本中的第一行是“#!/ usr / bin / env python”(無qoutes)。 為每個文件執行“chmod + x file.py”。 然后,您應該能夠將每個腳本作為file.py運行。

輸入:

which python 

進入終端,這應該讓你通往python的路徑。 將其放在腳本之上,正如其他人建議的那樣:

#! /path/to/python

還要確保它是可執行的(整個chmod的東西)。 您可以輸入以下命令來檢查:

ls -l

然后該文件應該在它旁邊有-rwx-r - r--之類的東西。 x表示它是可執行的。

其他響應者在您的初始問題上做得很好,但我認為您可以很好地學習如何使用命令行,因為您的回復表明您還不熟悉它。 我總是推薦這個 這是一個很棒的指南,可以讓你舒服地使用它。

我不知道這對你來說現在看起來有多么有用,就像幾年后一樣,但我現在一直在努力解決一個非常類似的問題。 我使用Python IDLE將我的代碼保存為.py文件。 當我試圖在終端中運行它時,我在第一行中遇到語法錯誤。 我的第一行代碼是

#!/usr/bin/env python

但是解釋器正在閱讀我的第一行作為IDLE的shell描述“(Python w.7.5(v2.75:ab05e7dd2788 ......等等)”。我要做的就是刪除所有這些行,包括第一行>>>為了讓終端打開我的文件。所以我刪除了IDLE所有的廢話作為它的第一行和voilà!它工作。這是我如何讓它在終端工作一次:

cd /directory/where/you/have/your/file
chmod +x filename.py
python filename.py

而已!

嘗試輸入:

which env

找出env在你的系統中的路徑。 更改shebang路徑以匹配使用which命令找到的env命令的完整路徑。 如果失敗了 這意味着您要么沒有安裝env,要么在系統路徑中安裝了env。 嘗試通過鍵入以下內容來指定python可執行文件的完整路徑,而不是使用env:

which python

並使用完整路徑返回代替/ path / to / env python shebang。 你的recap.py的第一行應該是這樣的:

#!/path/to/python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM