web-dev-qa-db-ja.com

Sublime Text 3のビルドシステムの問題-実行中のプログラムから入力を取得できません

Pythonスクリプトを実行するためにSublime Text 3(ビルド3049、それが重要な場合)を取得しようとしています。単純な2つのライナー

var = raw_input("Enter something: ")
print "You entered ", var

入力を要求し、それを待ってから、Windowsコンソールのプロンプトに出力します。

サイトで類似した質問の数を見て、これはかなりの数のユーザーにとって問題なので、私はそれらを調べて...ものを試しました。 exec.pyファイルのコピーを作成し、その1行にコメントし、新しいpythonwビルドファイルを作成し、ビルドファイルをいじってみました...何も動作していないようです。

明確な解決策がない場合、Sublime Text 3を使用してPythonをどのように操作しますか?

13
Rook

まず、開発ビルドを使用しているため、登録ユーザーである必要があります(良い!) pgrading を3053にすることをお勧めします。修正される既知の問題。次に、参考までに、 docs.sublimetext.info に(非公式の)ドキュメントのかなり完全なセットがあります。それらはよく整理されており、かなり最新であり、sublimetext.comの「公式」のものよりもはるかに広い範囲をカバーしています。最後に、あなたの コメント への応答として、Sublimeには、わずかに縮小されたバージョンのPython=が組み込まれています。ST2は2.6、ST3は3.3なので、これらの言語仕様に準拠する必要があるプラグインを作成します。コンソールから任意の commands を実行して、 Ctrl`

いくつかのSO質問に記載されているように、Sublime Textはそれ自体ではraw_input()またはinput()を介した入力を処理できません。同じことが他の言語にも当てはまります-Rubyのgets、JavaのScannerクラス、ノードのreadlineクラスなど。最も簡単な短期的な解決策は、 Package Control を取得することです。まだ持っていない場合は、インストールしてください SublimeREPL 。これにより、実行中のコードの一部またはすべてをREPLから転送または実行できます(開始する必要があります) 1つ目)。

実行しているコードがSublimeREPLでうまく機能しない場合(たとえば、C/C++/Javaなどを使用していて、実行前にコードをコンパイルする必要がある場合)、またはSublimeとは独立して実行したい場合、独自の build system を作成する必要があります。以下をPackages/User/Python_cmd.sublime-buildとして保存します。

{
    "cmd": ["start", "cmd", "/k", "c:/python27/python.exe", "$file"],
    "selector": "source.python",
    "Shell": true,
    "working_dir": "$file_dir"
}

パスをPython実行可能ファイルに適宜変更します。次に、Tools -> Build Systemに移動してPython_cmdを選択します。 CtrlB ビルドするには、新しいcmdウィンドウが開き、ファイルが実行されます。 /kオプションは、プログラムの実行が完了した後、ウィンドウを閉じずにコマンドプロンプトに戻るため、出力やトレースバックなどを調べることができます。

24
MattDMo