Python中解释器错误:找不到文件或目录

21

我最初在Windows上使用Python IDE编写代码。现在,当我将我的代码粘贴到Linux服务器上的文件中后,在运行脚本时,它给出了以下错误:

bad interpreter: No such file or directory

请告诉我如何解决这个错误。


你能贴一下脚本的前几行吗?至少看看你的#!行是什么会很有帮助。 - Jacinda
也许是重复的问题:在运行 Django admin.py 时出现“Python bad interpreter: No such file or directory”错误。 - Jacinda
可能您没有安装Python或者Python不在路径中。 - codeScriber
你的脚本里有shebang行来通知shell调用Python解释器吗? - KingRadical
也可能是写成了'/usr/local/bin/python2.7'而不是'/usr/bin/python2.7'。 - boczniak767
2个回答

35

很可能你使用的是 \r\n 行尾符,其中 \r 代表回车符,\n 代表换行符

这意味着第一行可能会像这样

#!/usr/bin/env python\r\n
或者
#!/usr/bin/python\r\n

因此,shell 正在尝试运行命令python\r


我不知道最近的sh/bash/dash/ksh版本会表现出这种方式。 - KingRadical
实际上,处理这个的是内核本身,而不是 shell。是的,这是一种可能性。 - Cairnarvon
2
+1 我非常确定这就是解释。 - tripleee
vi 有一个“dos 模式”。如果它正在创建这样的文件,你可能在你的 .virc 中有一些默认开启它的设置。这个链接可能会有所帮助 - John La Rooy
同样的问题,我使用 dos2unix file.py 命令转换换行符解决了它。 - rubenafo

13

你可能正在使用在Windows用户中难以理解的#!python哈希约定。Linux期望那里是完整路径。请改用#!/usr/bin/python 或者(最好) #!/usr/bin/env python


1
在某些情况下,最好使用 #!python,因为它从路径中获取Python - 例如,在 venv 的上下文中执行。 - Blake
一个解决方法是在xed编辑器(Linux Mint默认文本编辑器)中打开文件。选择“另存为”,在底部的“行尾”下拉菜单中选择Unix/Linux而不是Windows。这将清除行尾不兼容性问题。 - gxpr
今天我了解了 #!python - Andrew Keeton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接