1

Ubuntu バージョン:12.04 Python バージョン:2.7.3

私はスクリプト(prawn.py)を持っています:

#! /usr/bin/env python
from random import choice
import os
from webbrowser import open_new
import urllib
print("!")
def getsource(url): page=urllib.urlopen(url);sourcecodey=page.read();page.close;return sourcecodey
#etc

ターミナルで実行すると:

$ ./prawn.py
: No such file or directory

最初の行を #! に変更すると、/usr/bin/python

$ which python
/usr/bin/python
$ ./prawn.py
bash: ./prawn.py: /usr/bin/python^M: bad interpreter: No such file or directory

しかし、「python prawn.py」を使用して実行すると、動作します。

これを修正するにはどうすればよいですか?

4

3 に答える 3

5

は、^MDOS行末を使用していることを示します。代わりにUNIXの行末を使用してください。sed次のように使用して、ファイルをDOSの行末からUNIXの行末に変換することができます。

sed -E 's/\'$'\r''$//' < prawn.py > prawn.unix.py

変換されたファイルはになりますprawn.unix.py

于 2012-10-21T08:10:34.870 に答える
1

^Mシバンの行にが含まれているようです。最初の行のすべてのコンテンツを削除してから、手動で再入力します( #!/usr/bin/env python)。

于 2012-10-21T08:12:04.063 に答える
1

これは基本的に同じエラーです。シバン行はキャリッジ リターン\r/で終わります^Menvそれを印刷します(それは印刷しますpython、それはキャリッジリターンを行い、行の先頭に印刷し : No such file or directoryます.

python直接電話しpython^Mても見つからない。

どちらの場合も、余分な文字を削除してください。envあなたがそれを機能させたら、のバージョンはより良いものです。

于 2012-10-21T08:31:39.703 に答える