2012-04-02 32 views
42

无法弄清楚,在PyCharm中更改EOF的位置。 我的脚本开始:PyCharm。/usr/bin/python^M:错误的解释器

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

输出这样的事情,当我试图像可执行文件运行它(CHMODE + X):

-bash:./main.py:在/ usr/bin/python^M:不好的翻译:没有这样的文件或目录

怎么办,怎么做?

+2

似乎脚本里有'^ M'个字符,用dos2unix – avasal 2012-04-02 10:50:25

回答

26

设置行分隔符来的Unix

Unix

+0

如果文件已保存,这似乎没有帮助。可能只有新文件?你需要为这些文件使用'dos2unix'工具。 – ksaylor11 2016-08-02 20:59:12

33

问题不是EOF,而是EOL。 shell看到一个^ M以及行尾,因此试图找到/usr/bin/python^M

进入此状态的常用方法是使用MSDOS/Windows编辑器编辑python文件,然后在Unix上运行。最简单的解决方法是在文件上运行dos2unix,或者在编辑器中编辑文件,该编辑器明确允许使用Unix结尾的行进行保存。

+0

我觉得python解释器根本就没有运行。 shebang翻译失败^ M。 – jpic 2012-04-02 10:53:07

+0

对不起,外壳看到ingthis – Mark 2012-04-02 10:53:41

+0

如果你没有dos2unix,只需在Ubuntu 14.04下执行'sudo apt-get install dos2unix'即可。 – gsamaras 2016-01-30 20:01:39

9

你可能想尝试dos2unix <filename>

+0

注意。没有它,安装centos。安装sudo yum install dos2unix。它在回购中。 – ThinkBonobo 2015-02-18 22:23:08

0

只是一个格式beween赢和UNIX的问题:

试命令:DOS2UNIX的文件名

后,它再次运行,它应该工作

+0

这是如何增加或改进其他答案? – Mark 2016-07-06 13:42:07

1

与江伟宇的帖子相似。在UNIX/Linux上,我使用vi来编辑Python文件。使用vi,你可以在每行的末尾看到^ M。

查找以下行/usr/bin/python^M

命中end去行

命中delete删除^ M

要保存该文件并退出,输入的结尾::wq

这对我有效。

5

安装DOS2UNIX的: 命令和apt-get安装DOS2UNIX的

,让它做的魔力:通过Homebrew这样 DOS2UNIX的文件名

3

适用于MacOS,你可以安装它:

brew install dos2unix 

然后做

dos2unix FILENAME 
5

如果您正在使用的Vim,只需输入以下命令:

:set fileformat=unix 
1

你可以尝试这样做:

sed --in-place 's/^M//g' main.py 

[中^ M型,按CTRL + V, ctrl + m]