在Linux(Ubuntu 11.04)上,出于某种原因,Python脚本(特别是Django的manage.py,但我认为不重要)最近开始表现得很奇怪:
以
运行时python manage.py
它运行得很好;但是,
./manage.py
它显示以下错误:
: No such file or directory
文件的权限是766.有什么想法吗?
答案 0 :(得分:6)
您的文件中有回车符。你是否在Windows文本编辑器中编写了它?
尝试运行dos2unix manage.py manage.py
答案 1 :(得分:3)
如果您没有安装dos2unix,可以使用
删除换行符tr -d '\r' < manage.py > manage2.py; mv manage2.py manage.py
您无法同时读取和写入同一文件,这就是您必须使用临时文件来保存tr
输出的原因。
答案 2 :(得分:2)
我怀疑文件顶部的shebang是不正确的。 该文件应以:
开头#!/usr/bin/python
(其中python路径是which python
的输出)
或
#!/usr/bin/env python
答案 3 :(得分:1)
如果权限为766
并且您不是所有者,则您无权执行该权限。 6
表示您可以读写但不能执行。像这样的系统文件是世界可写的是不寻常的;通常是755
。如果您拥有根本权限,请使用chmod 755 manage.py
进行修复。
答案 4 :(得分:0)
直接运行脚本时,脚本将使用第一行中指定的解释器启动:
#!COMMAND
其中COMMAND是shell脚本的/ bin / bash。对于python,最好使用
#!/usr/bin/env python
这样就可以选择环境中的python版本了。