
我是使用 shell 的新手,想要建立目錄,在$HOME
其中放置所有 python 腳本,設定該目錄的路徑,以便我可以進入 Mac 上的任何資料夾並在某些檔案上執行這些腳本,腳本不必包含在與用作這些腳本的輸入的檔案相同的目錄中。
我已閱讀周圍並將其添加到我的.zshrc
文件中:
export PATH="$HOME/python_functions/bin:$PATH"
sleep_plotter.py
然後我添加了一個名為to 的腳本python_functions/bin
,這也是我計劃放置所有未來腳本的地方。
但是,當我導航到包含要用作該腳本的輸入的文本文件的資料夾並鍵入 時(python sleep_plotter.py 113testCtM113.txt
最後一個參數是腳本的文本文件輸入),我收到以下錯誤訊息:
python: can't open file 'sleep_plotter.py': [Errno 2] No such file or directory
但是當我使用 呼叫路徑時echo $PATH
,我看到了:
/Users/myname/python_functions/bin:
sleep_plotter.py
由此,我了解到,當我執行 Python 命令時,python 正在該目錄中查找,因此即使我位於不包含此文件的不同資料夾中,它也應該能夠運行。
我使用的是 Mac OSX 10.11.2、zsh 和 Anaconda 2.3.0。
答案1
PATH
變數定義執行指令時搜尋的目錄。但是,當您執行 時python sleep_plotter.py 113testCtM113.txt
,是程式(命令)sleep_plotter.py
的一個參數。 python
Shell 使用PATH
find python
,但不使用它的參數。
您可以為腳本新增可執行屬性:
$ chmod +x /Users/myname/python_functions/bin/sleep_plotter.py
添加一個舍邦序列到 Python 腳本的頂部(第一行):
#!/usr/bin/env python
並直接作為命令運行腳本:
$ sleep_plotter.py 113testCtM113.txt
答案2
如果你想擴充 python 來搜尋其他目錄,那麼你需要做兩件事:設定 PYTHONPATH 變數並使用-m
Python 中的選項。
在(注意那裡~/.zshrc
沒有):$PATH
export PYTHONPATH="$HOME/python_functions/bin"
並在終端使用:
python -m sleep_plotter 113testCtM113.txt
這與您之前輸入的內容一樣多,因為您必須省略.py
python 檔案的副檔名。