Python

從 Linux 終端執行 python 腳本

  • February 12, 2021

我已經下載了這個名為 pyAES.py 的腳本,並將其放在我的 Linux 桌面目錄中的文件夾名稱程式碼中,

根據這個例子, http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/

當我打字時,

./pyAES.py -e testfile.txt -o testfile_encrypted.txt

應該執行文件 pyAES.py。但我收到了這個錯誤,

pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found

命令的輸出ls -l是,

pi@raspberrypi ~/Desktop/Codes $ ls -l
total 16
-rw-r--r-- 1 pi pi 14536 Oct  8 10:44 pyAES.py

這是之後的輸出chmod +x

pi@raspberrypi ~/Desktop/Codes $ chmod +x pyAES.py                              pi@raspberrypi ~/Desktop/Codes $
pi@raspberrypi ~/Desktop/Codes $ pyAES.py
-bash: pyAES.py: command not found
pi@raspberrypi ~/Desktop/Codes $

和命令,chmod +x pyAES.py && ./pyAES.py給出以下錯誤,

-bash: ./pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory

我也試過移動/usr/bin目錄中的文件然後執行它,

pi@raspberrypi /usr/bin $ pyAES.py
-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
pi@raspberrypi /usr/bin $

我可以看到該文件存在於 /usr/bin 目錄中,但它仍然給出沒有這樣的文件或目錄的錯誤。

我想知道為什麼 Linux 終端不執行 python 腳本?

看來您的 shebang 線寫得不好。從您得到的錯誤中:

-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory

我會說你應該將第一行設置/usr/bin/pyAES.py

#!/correct/path/to/python

/correct/path/to/python可以從以下輸出中找到:

type -P python

/usr/bin/python(不是/usr/bin/python2)在我的系統上。

您收到的錯誤"command not found"是因為該執行檔不存在於變數中/bin//usr/bin/所有路徑中。$PATH

當您執行任何命令時,在後端 shell 中搜尋 PATH 中的執行檔/二進製文件,例如。/bin/ /usr/bin/ETC…

因此,如果路徑沒有正確定義,那麼您將面臨這個問題。

並且當您使用“ ./command”時,它將從目前目錄執行該命令,PATH變數不用於搜尋文件名

引用自:https://unix.stackexchange.com/questions/94071