3

Sublime Text 2 を 1 年以上使用しており、最近 Python で使用し始めました。Sublime には、私が使用してみた Python 用の組み込みビルドがあります (組み込みのビルドは 2.7.3 または 2.XI 用のものです)。Python 3.3.0 を使用しています。私はすでに崇高なビルドファイルを編集し、次のように変更しました:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}

別のスレッドのstackoverflowで提案されているように。Sublime を再起動して、自分のコードを実行しようとしました:

x = input("Name: ")
print("Welcome " + x)
input()

しかし、下部のコンソールで、ビルド (Ctrl+B) で実行すると、次のエラーが表示されます。

Name: Traceback (most recent call last):
File "/home/andrew/grive/Documents/RandomProjects/PythonStuff/HelloWorld.py", line 32,      
in <module>
x = input("Name: ")
EOFError: EOF when reading a line
[Finished in 0.1s with exit code 1]

また、SublimeREPL とその中の Python 関数を使用して、組み込みのビルド関数をバイパスしようとしましたが、Python ビルドが 2.7.3 であることも検出されたため、3.3.0 コードをコンパイルしませんでした。Python 3 がインストールされていることに注意してください。Ubuntu を使用しています。ターミナルで「python3」と入力すると、正しいバージョンの Python がターミナルで起動されます。

だから私は2つの質問があります:

python3.sublime-build が機能しないのはなぜですか? どうすれば修正できますか?

私は Linux 初心者なので、ビルド ファイルへのアクセスに問題があります。私は一度それらに行きましたが、今は方法を忘れました。それらは /home/~.config/sublime-text-2/ などにあります。

.config ファイルが表示されません。おまけとして、これがどのように機能するか説明していただけますか?

4

3 に答える 3

4

あなたの問題は、sublimetext ビルドがユーザー入力を受け付けないことです。入力ストリームが接続されていません。Python のバージョンは関係ありません。

ただし、入力を受け取るプラグインを作成することは可能です。


構成ファイルについては、「設定 -> パッケージの参照」メニュー項目を使用してください。

于 2012-10-24T22:55:05.753 に答える
1

「Python.sublime-build」ファイルを「python」から「python3」関数に編集するOPソリューションが見つかりました。

同じ問題が発生したときにOPのソリューションが役に立ったため、これを知っています。証拠は次の行にあります。

import sys
print(sys.platform)

全体の練習コード:

import sys
print(sys.platform)
print(2 ** 100)
x = 'Spam!'
print(x * 8)
input('Press ENTER to exit...')

Python 2.7 では、(私にとっては) 'linux2' が返されます。Python 3.3 では、戻り値は 'linux' です。これは、私が PVM を使用して最初に検出したものです。Sublime 2 で「ビルド」を実行すると、「linux2」が出力されました。OPの方法を使用すると、出力が「linux」に変更されたので、それが正しいことだと思います(とにかく最も簡単です)。

Python で出力をビルドします。

linux2
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
Press ENTER to exit...Traceback (most recent call last):
  File "/home/sick/Python/script1.py", line 6, in <module>
    input('Press ENTER to exit...')
EOFError: EOF when reading a line
[Finished in 0.0s with exit code 1]

Python3 で出力をビルドします。

linux
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
Press ENTER to exit...Traceback (most recent call last):
  File "/home/sick/Python/script1.py", line 6, in <module>
    input('Press ENTER to exit...')
EOFError: EOF when reading a line
[Finished in 0.1s with exit code 1]

プログラム エラーはありません。プログラムがユーザー入力を期待しているため、エラーが発生します(私が知る限り、私は第4章しか読んでいません)。

于 2013-06-17T00:13:14.360 に答える