問題タブ [python-interactive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - なぜPythonインタラクティブモードを使用するのですか?
私が最初にPythonについて読み始めたとき、すべてのチュートリアルでPythonのインタラクティブモードを使用しています。保存したり、長いプログラムを書いたり、既存の行を編集したりすることは困難です(少なくとも私にとっては)。code.pyファイルを開いてそのファイルでインタープリターを実行するよりも、Pythonコードを作成するのがはるかに難しい方法のようです。
私はJavaのバックグラウンドを持っているので、プログラム用のファイルの作成とコンパイルに期待を寄せています。また、Pythonのドキュメントでは、機能が何らかの形で役に立たなかった場合、その機能はそれほど目立たないことも知っています。だから私は何が欠けていますか?
python - Python スクリプト内から Python インタラクティブ インタープリターを呼び出す
python -i
現在のスクリプトのオブジェクト/名前空間などが保持されるように、単に使用するのと同様の方法で、 script 内から Python インタープリターを起動する方法はありますか? 使用しない理由python -i
は、スクリプトが XML-RPC サーバーへの接続を初期化し、エラーが発生した場合にプログラム全体を停止できるようにする必要があるためです。どうやら、次のようなことはできないため、有効な入力があるまでループできません。
なぜなら:
残念ながら、python -i
トレースバックを出力した直後にインタープリターを開始するため、スクリプト内から対話型インタープリターを呼び出す必要があります-スクリプトの実行を置き換えて、サーバー接続を保持します-
python - コードがインタラクティブシェルから機能するのに、ファイルから実行すると機能しないのはなぜですか?
このモジュールを使用して、Pythonでいくつかの変数をチェックアウトしようとしていpprint
ます。これは、インタラクティブシェルと以下のコードを使用して問題なく実行できます。
ただし、上記を挿入pprint.py
して使用するpython pprint.py
と、次のエラーが発生します。
インタラクティブシェルと比較して、ファイルからPythonコードを実行するときにモジュールが呼び出される方法の違いは何ですか?
python - Python Interactive Interpreterにロード時にスクリプトを実行させることは可能ですか?
プロジェクトで作業する場合、sys.pathへのパスの追加やプロジェクトのモジュールのインポートなど、スクリプトに定型コードが含まれることがよくあります。インタラクティブインタープリターを起動するたびにこの定型コードを実行して何かをすばやくチェックするのは面倒なので、「インタラクティブ」になる前に実行されるスクリプトをインタープリターに渡すことができるかどうか疑問に思います。
python - で std から読み取ると、Python のインタラクティブ モードが機能しません。
次の python スクリプトを考えると....
...次の出力が得られます。
... つまり、python コンソールでハングアップせず、bash に戻ります。Pythonコンソールにとどまる方法を知っている人はいますか???
python - InteractiveInterpreterオブジェクトの現在の状態をデータベースに保存するには?
オンラインの Python シェルを構築しようとしています。のインスタンスを作成してコマンドを実行しInteractiveInterpreter
、コマンドを使用しますruncode
。そのためには、インタープリターの状態をデータベースに保存して、グローバルおよびローカル名前空間の変数、関数、定義、およびその他の値をコマンド間で使用できるようにする必要があります。InteractiveInterpreter
後で取得local
してコンストラクターに引数として渡すことができるオブジェクトの現在の状態を保存する方法はありますInteractiveInterpreter
か、またはこれができない場合、言及された機能を実現するためにどのような代替手段が必要ですか?
以下は、私が達成しようとしているものの擬似コードです
ここで、セッションは必要なすべての情報を含むテーブルのインスタンスです。
python - サブプロセスの出力を適切にリダイレクトするにはどうすればよいですか?
shellpy と呼ばれる Windows 用の単純なシェルの代替品を作成しています (学習目的で)。明らかに、シェルを Windows CMD から独立させたいので、すべての出力を StringIO オブジェクトにリダイレクトしています。これまでのところ、かなりうまく機能しています。
しかし、小さなシェル内で Python インタラクティブ インタープリターを実行しているときに問題が発生しました。明らかに、対話型インタープリターは、 stdoutに書き込む印刷出力を除いて、すべてをstderrに書き込みます。私のアプローチでは、次のような出力が得られます。
私はこれを理解することはできません。私のコードを理解する方法は次のとおりです。子プロセスの stdout または stderr によって 1 バイトのデータが書き込まれるたびに、シェルの適切な印刷機能にリダイレクトされます。では、なぜ両者が重なり合うのでしょうか。確かに、Python インタープリターは両方のファイル記述子に同時に書き込みを行っていませんか? 私のアプローチに欠陥がありますか?もしそうなら、子プロセスの出力をどのようにリダイレクトすればよいですか?
注:質問のタイトルで私の問題を説明するのに非常に苦労しました。より良いものを考えられる場合は、自由に編集してください。
このコードはサブプロセスを起動します:
これは、スレッドを使用して継続的に子をポーリングして出力するリダイレクト関数です。
関数self.print_text
とself.print_error
は現在、 の単なるラッパーですsys.stdout.write
。
python - 読み取り/書き込みを同時に行うpythonsubprocess.Popen
次のように機能する単純なCプログラムがあります。入力を要求する印刷する別の入力を要求するもう一度印刷する
ここで、iamはpythonを使用してこのプログラムを呼び出します。
これは正常に機能します。同様に、正常に機能していることを伝えます。
しかし、私がこのようなことをしようとすると、うまくいきません
以下にいくつかのことを示します。1。pexpectを見ましたが、プログラムが求めるものを事前に提供する必要があると思います。2.閉じたサブプロセスパイプを再び開くことはできますか?
Iamは上記のスクリプトをCGIとして使用していますが、理由はわかりませんが、subprocess.callはその中で機能しません。誰かが理由を説明できますか?
編集:
Iamは、ユーザーがC、C ++、またはJAVAのいずれかでコードを記述し、それらをブラウザーで実行するWebベースのプロジェクトを実行しています。そこで、最初はPHPを使用することを考えましたが、プログラムを呼び出してインタラクティブに実行する方法が見つかりませんでした。それから私はpythonサブプロセスモジュールを見ました。subprocess.callを使用していたとき、インタプリタではすべてが正常に機能していました。しかし、同じpythonプログラムを.cgiとして保存し、ブラウザーで開いた場合、機能しませんでした。それから私はsubprocess.popenを見始めました。しかし、これでは、最初にすべての入力を指定してから、コードを実行する必要があります。私がやりたいのは、ブラウザでインタラクティブセッションを実行することです。
編集2:ユーザーがブラウザでプログラムを実行し、必要に応じて提供されるテキストボックスに入力を入力すると、その入力がサブプロセスのstdinにリダイレクトされ、それに基づいて出力されます。
編集3:cprog.c
python - os x10.6.8-Pythonインタラクティブモードで非ASCII/UTF-8文字(例:å、ä、ö)を入力できません
実行OS X 10.6.8 Snow Leopard
中スカンジナビアの文字を解釈モードに入力できません。キーを押すたびにターミナルベルが鳴り、何も表示されません。通常の端末環境では、すべての文字が通常どおり表示されます。UTF8文字の入力は、ターミナル、Pythonスクリプトの実行時、PyDev、およびREPLで正常に機能します。
インタラクティブモードの設定とこれらの特殊文字に問題はありますか?
私は2.7.3
主にPythonをインストールして実行していますが、OSが提供するPythonにもこの問題があります。(つまり、実行中python2.5
、またはpython2.6
まだこの問題が発生します。)python 2.7をインストールすると、使用するライブラリの下で変更があったかどうかわかりませんreadline
(基本的には、ここでは薄い氷の上にいます)。
python - Python インタラクティブ セッションでの自動印刷を無効にする
私の大学のPythonで初心者レベルのプログラマーを教えるために、Pythonワークショップを開催する予定です。
式が自動的に結果を出力しないように、Python インタラクティブ セッションのデフォルトの動作を変更する方法を探しています。たとえば、次の対話型セッションを見てください。
print
これにより、後で混乱を避けるためにステートメントの使用が強制されます。これは重要ではありませんが、これに関する設定がどこにも見つからないことに驚きました。
マシンを事前に構成できるので、どのソリューションでも機能します。これが可能かどうか、またはインタラクティブセッションへのどのような変更がこの効果を生み出すかを誰かが知っていますか?