2

Mac OSX Lion で Enthought Canopy を使用しています。モジュールとライブラリを簡単にダウンロードしてインストールできるため、これを使用しています(多くの問題により、ターミナルを介してパンダとnumpyをダウンロードするのに多くの問題がありました)。だから今、私はCanopyでプロジェクトのコーディングを行っています. 私が遭遇した問題は、ユーザーに入力を求める必要があることです。たとえば、次のようにします。

 x = input('Enter your input here: ')

次のようにEOFエラーが発生します。EOFError: EOF when reading a line

私は周りを見回して、これは Canopy がサポートしていないものかもしれないと信じています. これが実際に当てはまるかどうか、またこの問題の解決策/回避策があるかどうか疑問に思っていましたか?

4

1 に答える 1

2

Canopy エディターに組み込まれている IPython シェルにこのコードを入力していると仮定します。これは、IPython の Qt コンソールのアップストリームのバグ/欠陥です。リモート シェルは実際には端末に接続されていないため、代わりに GUI コンソール ウィジェットから入力を取得するには、input()およびのような関数raw_input()を置き換える必要があります。IPython (したがって Canopy) は を置き換えraw_input()ますが、置き換えませんinput()。このコードは、スクリプトに入れてコマンドラインから実行する場合、Canopy の Python インタープリターを使用して機能し、IPython のターミナル インスタンスでも機能します。これは通常、使用するのは悪い考えであると考えられているため、見過ごされている可能性が最も高いinput()です。

代わりに使用raw_input()して、取得した文字列を解析してください。必要に応じて使用できeval()ますが、より具体的な解析/変換関数を使用することをお勧めします。

于 2013-05-24T21:36:34.323 に答える