我是新手使用shell,并想在$HOME中创建一个目录,我可以放置所有python脚本,设置该目录的路径,这样我就可以进入Mac上的任何文件夹并在某些文件上执行这些脚本文件,不必将脚本包含在与作为这些脚本的输入的文件相同的目录中.
我已阅读并将其添加到我的.zshrc文件中:
export PATH="$HOME/python_functions/bin:$PATH"
然后我在python_functions / bin中添加了一个名为sleep_plotter.py的脚本,这也是我计划放置所有未来脚本的地方.
但是,当我导航到包含我想用作该脚本输入的文本文件的文件夹,并输入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:
从这里,我收集到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来查找python,但不使用它的参数.
您可以向脚本添加可执行属性:
$chmod +x /Users/myname/python_functions/bin/sleep_plotter.py
将一个shebang序列添加到Python脚本的顶部(第一行):
#!/usr/bin/env python
并直接将脚本作为命令运行:
$sleep_plotter.py 113testCtM113.txt
标签:python,path,scripting
来源: https://codeday.me/bug/20190813/1645391.html