这是我的环境
> lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: Scientific
Description: Scientific Linux release 6.8 (Carbon)
Release: 6.8
Codename: Carbon
> /home/ktew/python/bin/python --version
Python 2.7.18
我在python脚本中添加了以下行作为第一行。
#!/home/ktew/python/bin/python
python脚本是可执行的。
-rwxrwxrwx 1 ktew ktew 12753 Sep 23 10:35 compare_trims_by_version_5.py*
这个命令行运行良好。
/home/ktew/python/bin/python compare_trims_by_version_5.py
然而,当我运行命令时没有找到它。
> ./compare_trims_by_version_5.py
./compare_trims_by_version_5.py: Command not found.
我在中找到了答案https://stackoverflow.com/a/30127747/5057185.我用windows编辑器编写了这个脚本,它包含windows行结尾(CR/LF(。我使用了dos2unix
命令来修复行尾。
总结:
- 在脚本的第一行添加shebang。
#!/home/ktew/python/bin/python
- 请确保脚本是可执行的。
chmod +x script
- 如果目录不在PATH中,请使用
./script.py
而不是script.py
- 确保线路末端正确(LF而不是CR/LF(。使用
dos2unix
进行修复
错误消息看起来像是系统试图作为shell脚本运行,而不是使用Python解释器(ref:Python错误:找不到命令(。在这种情况下,Python解释器似乎没有什么不合适的地方。参考的stackoverflow页面建议使用#!/usr/bin/env python
,建议您也尝试一下。