web-dev-qa-db-ja.com

PyCharm。 / usr / bin / python ^ M:不正なインタープリター

PyCharmでEOFを変更する場所を把握できません。

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

実行可能ファイル(chmode + x)のように実行しようとすると、次のような出力が表示されます。

-bash:./main.py:/ usr/bin/python ^ M:不正なインタープリター:そのようなファイルまたはディレクトリはありません

何をすべきか、どのようになりますか?

48
woozly

行区切り文字をnixに設定します。

Unix

32
CrazyCoder

問題はEOFではなくEOLです。シェルは行末だけでなく^ Mも検出するため、/usr/bin/python^M

この状態になる通常の方法は、MSDOS/Windowsエディターでpythonファイルを編集してからUnixで実行することです。最も簡単な修正は、ファイルでdos2unixを実行するか、 Unixの行末での保存を明示的に許可するエディター。

40
Mark

あなたはここで答えを見つけるかもしれません: ./ configure:/ bin/sh ^ M:badinterpreter

Mac OS Xユーザーとして、コマンドdos2unixが見つかりませんでした。または、vi/vim::set fileformat=unixを使用してから、ファイルを保存します:wq

22
Jiangwei Yu

Vimを使用している場合は、次のコマンドを入力するだけです。

:set fileformat=unix
13
Vitaly Isaev

試してみてくださいdos2unix <filename>

12
gefei

Dos2unixのインストール:Sudo apt-get install dos2unix

そして、魔法をかけます:dos2unix FILENAME

7
vatsa

MacOSの場合、次のように Homebrew でインストールできます。

brew install dos2unix

そして次に

dos2unix FILENAME
3
Vinozio

Jiangwei Yuの投稿に似ています。 UNIX/Linuxでは、viを使用してPythonファイルを編集します。viを使用すると、各行の最後に^ Mが表示されます。

次の行を見つけます/usr/bin/python^M

endを押すと、行の終わりに到達します

deleteを押して^ Mを削除します

ファイルを保存して終了するには、次のように入力します::wq

これは私のために働いた。

2

あなたはこれを試みることができます:

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

[^ Mと入力するには、ctrl + v、ctrl + mを押します]

1

Winとunixの間のフォーマットの質問:

tryコマンド:dos2unix fileName

再度実行した後、動作するはずです

0
vivi