pat*_*rat 4 scripting path python
我是使用 shell 的新手,想创建一个目录$HOME
,我可以在其中放置所有 python 脚本,设置该目录的路径,以便我可以进入 Mac 上的任何文件夹并在某些文件上执行这些脚本,脚本不必包含在与用作这些脚本输入的文件相同的目录中。
我已经阅读并将其添加到我的.zshrc
文件中:
export PATH="$HOME/python_functions/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
然后我添加了一个名为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
Run Code Online (Sandbox Code Playgroud)
但是当我使用 调用路径时echo $PATH
,我看到:
/Users/myname/python_functions/bin:
Run Code Online (Sandbox Code Playgroud)
由此,我发现当我执行 Python 命令时,python 正在查看该目录,因此sleep_plotter.py
即使我位于不包含此文件的其他文件夹中,它也应该能够运行。
我使用的是 Mac OSX 10.11.2、zsh 和 Anaconda 2.3.0。
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
Run Code Online (Sandbox Code Playgroud)
将shebang序列添加到 Python 脚本的顶部(第一行):
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
并直接作为命令运行脚本:
$ sleep_plotter.py 113testCtM113.txt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7218 次 |
最近记录: |