15

私はPyDevforEclipseをIDEとして使用し、pipをパッケージ管理ツールとして使用してvirtualenvを実行しています。

プロジェクトでいくつかの新しいライブラリまたは新しい依存関係を使用/含めるたびに、それらをpip-requiresファイルに追加します。依存関係は、実行後に問題なく仮想環境にインストールされますpip install -r pip-requires

私の環境

  • Ubuntu 12.04
  • PyDev for Eclipse 2.7.1.2012100913
  • Python 2.7.3
  • Eclipseインディゴ

更新:私のPydevセットアップ

ここに画像の説明を入力してください

質問:

  • eclipse / pydevは、仮想環境に追加されている新しいライブラリについて何も知りません。未解決のインポートをすべて解決するために、.eggソースフォルダーをEclipseプロジェクトのPYTHONPATHに1つずつ手動で追加する必要がありました。これは非常に面倒でした。Pythonの依存関係をより簡単に解決できますか?

アップデート:

  • Env/bin/pythonスクリーンショットが示すように、インタープリターとして仮想envを使用すると、基本モジュールの一部がEclipseで解決されないことがわかりました。import copy, import jsonなど、デフォルト/usr/bin/pythonをインタプリタとして使用し、仮想環境site-packageをPYTHONPATHに追加する必要がありますか?標準のPythonライブラリ(jsonなど)と自分のプロジェクトの依存関係の両方を解決できるようにするには?
4

3 に答える 3

15

virtualenv から python インタープリターを選択するときは、システムの PYTHONPATH に site-packages フォルダーが含まれていることを確認してください。スナップショットのように。 ここに画像の説明を入力

次に、それらを 1 つずつ PYTHONPATH に追加する必要はありません。Eclipse を再起動する必要があります (更新は機能しません)。新しいモデルが追加されます。

更新: virtualenv で PYTHONPATH を確認しました。sys.path に他のパスがいくつかあることがわかりました。これらは、システムのデフォルトの python インストール場所です。copyこれらのパスには、やなどの基本モデルが含まれますjson

PS: 私の環境は Max OSX 10.8 です。独自のプラットフォームの出力を確認してくださいprint sys.path

/Users/username/.virtualenvs/test/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
/Users/username/.virtualenvs/test/lib/python2.7/site-packages/pip-1.1-py2.7.egg
/Users/username/.virtualenvs/test/lib/python27.zip
/Users/username/.virtualenvs/test/lib/python2.7
/Users/username/.virtualenvs/test/lib/python2.7/plat-darwin
/Users/username/.virtualenvs/test/lib/python2.7/plat-mac
/Users/username/.virtualenvs/test/lib/python2.7/plat-mac/lib-scriptpackages
/Users/username/.virtualenvs/test/lib/python2.7/lib-tk
/Users/username/.virtualenvs/test/lib/python2.7/lib-old
/Users/username/.virtualenvs/test/lib/python2.7/lib-dynload
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/Users/username/.virtualenvs/test/lib/python2.7/site-packages

これはvirtualenvの要件だと思います。これらのパスを pydev システムの PYTHONPATH に追加する必要があります。その後、これらの基本モジュールを使用できます。

于 2013-01-03T16:10:04.920 に答える
13

あなたの質問から、Python Egg パッケージをパスに手動で追加していることを理解しました。これを行う代わりに、[プロジェクト設定] ウィンドウに移動し、[PyDev - PYTHONPATH] を開き、[外部ライブラリ] というパネルに移動して、仮想環境のフォルダー全体 (通常は. この方法では、パッケージごとに卵を 1 つずつ追加する必要はありません。新しいパッケージをインストールするときは、Eclipse ウィンドウに移動し、それでもインポートが解決されない場合は、プロジェクトを選択してキーを押し、プロジェクトを更新します。site-packages/path/to/virtualenv/lib/site-packages/F5

うまくいけば、それはあなたのために働くはずです。幸運を。

于 2012-12-31T13:37:55.240 に答える
3

これは、virtualenv を使用して PyDev をセットアップする方法です。

  1. で仮想環境を作成します/home/anshumanb/.virtualenvs/myvenv
  2. Eclipse で、Window > Preferences > PyDev > Interpreter - Python で、新しいインタープリターを追加します。インタープリターの実行可能ファイルについては、virtualenv の Python ie を参照します。/home/anshumanb/.virtualenvs/myenv/bin/python
  3. /home/anshumanb/.virtualenvs/myvenv「PYTHONPATH に追加するフォルダーの選択」画面で、 ANDで始まるすべてのパスを選択し、それ以外は
    /usr/lib/python2.7
    /usr/lib/python2.7/plat-linux2
    /usr/lib/python2.7/lib-tk何も選択しません。
    (私が,とを選択する理由については、こちらを参照してください)/usr/lib/python2.7/usr/lib/python2.7/plat-linux2/usr/lib/python2.7/lib-tk
  4. Eclipse 設定の Interpreter - Python 画面に戻ったら、Apply を押してから OK を押します。

この後、virtualenv にパッケージをインストールするたびに、[Interpreter - Python] 画面に戻り、[Apply] をクリックして、自分の virtualenv (およびパッケージをインストールしたばかりのもの) を指すインタープリターを選択し、[Apply] をクリックします。次に、PyDev は、virtualenv にインストールされた新しいパッケージを取得します。

注: 私は PyDev 2.7.1 と Python 2.7.3 を使用していますが、Eclipse 4.2.1 を搭載した Arch Linux ボックスを使用しています。しかし、私はそれが違いを生むとは思わない。

于 2013-01-03T23:41:44.253 に答える