设置PYTHONPATH后仍无法从任意目录运行Python2.7脚本,报[Errno2]错误
问题原因与解决办法
为什么PYTHONPATH没用?
PYTHONPATH是Python用来查找可导入模块的路径,不是python2.7命令在命令行查找脚本文件的路径。所以你能在交互环境import脚本,但直接运行python2.7 scriptname.py时,Python只会在当前工作目录(也就是/home/user)找这个文件,自然找不到。
两种可行的实现方式
方式一:让脚本成为可执行命令(推荐)
- 给每个脚本添加shebang头:在脚本的第一行加上
#!/usr/bin/env python2.7 - 给脚本赋予执行权限:运行
chmod +x /home/user/Projects/scripts/scriptname.py - 把脚本目录加入系统PATH:在
~/.bashrc里添加一行export PATH="$PATH:/home/user/Projects/scripts",保存后重新登录终端,或者执行source ~/.bashrc生效 - 之后在任何目录直接输入
scriptname.py就能运行,嫌麻烦的话还可以把脚本文件名的.py后缀去掉,直接输scriptname就行
方式二:用Python的模块运行参数
既然你已经把脚本目录加到了PYTHONPATH,脚本可以被当作模块导入,那可以用python2.7 -m scriptname(注意要去掉.py后缀)来运行,Python会自动从sys.path里找到这个模块并执行,不用输入完整路径。
内容的提问来源于stack exchange,提问作者Ed K
相关产品推荐
相关产品推荐

