我正在寫一個python腳本將被放置在一個位置。我想像命令一樣執行它。爲前。作爲一個命令執行一個python腳本
$ find_branch test
其中find_branch是放置在系統中任何位置的腳本。
我想知道如何做到這一點。我可以在地方運行該腳本存在與chmod U + X上的腳本,並從腳本中刪除的.py
我正在寫一個python腳本將被放置在一個位置。我想像命令一樣執行它。爲前。作爲一個命令執行一個python腳本
$ find_branch test
其中find_branch是放置在系統中任何位置的腳本。
我想知道如何做到這一點。我可以在地方運行該腳本存在與chmod U + X上的腳本,並從腳本中刪除的.py
sudo nano /usr/bin/testpyscript
然後裏面的腳本:
#!/usr/bin/python
print("I'm a python script")
給它x
許可:
sudo chmod +x /usr/bin/testpyscript
現在你可以使用它作爲一個普通的命令:
bash-4.2$ testpyscript
I'm a python script
它並不一定是在/usr/bin
,$ PATH中的任何位置都可以。假設您希望它位於您的主目錄中的某個文件夾中,您可以執行下面的操作:
pwd
/home/brunorb
mkdir somedir
sudo mv /usr/bin/testpyscript somedir/
export PATH=$PATH:/home/brunorb/somedir/
testpyscript # from any folder in the system
I'm a python script
但是你仍然需要cd到/ path/to/script/。我相信OP的問題是如何避免(即向$ PATH添加腳本)。 – pzp
OP表示他希望將腳本「放置在系統中的任何位置」,但您的答案要求他將其放在特定位置 – Spaceghost
這僅僅是一個例子,默認情況下,通常所有linux在/ PATH中都有/ usr/bin,我在最後一行評論說,只要dir在你的$ PATH中,它就可以在任何地方。 – BrunoRB
您有許多關於如何實現此目的的選項。
添加你把劇本給您PATH
環境變量的位置,例如在你的~/.bashrc
腳本:
export PATH="${PATH}:/folder/where/you/put/the/script"
安裝腳本是已經在你的路徑上的位置。它不一定是像/usr/bin
這樣的系統文件夾。許多默認Bash設置將在您的PATH
中包含~/bin
。
給的完整路徑,在命令行腳本:
/folder/where/you/put/the/script/find_branch test
通過Python中運行該腳本。這是非常相似的選項#2:
python /folder/where/you/put/the/script/find_branch test
在您的環境腳本創建一個別名。在bash,那麼你會做一些這樣的你~/.bashrc
如下:
alias find_branch='/folder/where/you/put/the/script/find_branch'
OR
alias find_branch='python /folder/where/you/put/the/script/find_branch'
對於選項#1,#2,#3,#5A正常工作,你應該作爲腳本的第一行,有python版本的shebang。以下任何方式都行,這取決於你如何有/想你的環境設置:
#!/usr/bin/python
#!/usr/bin/python2
#!/usr/bin/python3
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3
最後,你不必從腳本刪除.py
擴展,如果你不想。例如,許多bash腳本的擴展名爲.sh
,這並不妨礙它們按原樣運行。運行時只需在腳本名稱中包含擴展名。
確保python已添加到您的路徑中,#!/usr/bin/python
位於腳本的頂部。
注意您可以嘗試將您的腳本添加到您的/usr/local/bin/
目錄並給它適當的權限。
sudo cp <your script> /usr/local/bin/
爲什麼你不能運行「python」? –
只需在第一行放置#!/ usr/bin/python(或者你的Python所在的位置)並設置可執行位。 – Christoph
您需要將它所在的目錄添加到您的'PATH'環境變量 – Holloway