アップデート:
を実行する前に virtualenv が適切に初期化されていなかったことが判明しましたeasy_install
。これが修正されると、物事は意図したとおりに機能し始めました。記載されている問題はそもそも存在しなかったため、投稿する解決策はありません。「virtualenv をアクティブ化するとき」の手順が適切に行われなかった (聞かないでください) ため、次の誤動作は錯覚でした。
ケースを閉じました。
元の質問:
私はvirtualenvを持っています。内部はsys.path
次のようになります。
[...,
'/<inside_virtualenv>/lib/python2.6/site-packages/foo-1.2.egg',
...
'/usr/local/lib/python2.6/dist-packages/foo-2.0.egg'
]
import foo
virtualenv 内からの場合、予想どおり、foo-1.2 がインポートされます。
私は卵を持っています。そのセットアップファイルには、依存関係にある依存関係として別の卵がリストされていますfoo=1.2
。
virtualenv をアクティブにして を実行しようとするとpython <my_egg>/setup.py develop
、次のエラーが表示されます。
Processing dependencies for <my egg>
Installed distribution foo 2.0 conflicts with requirement foo==1.2
この例外を発生させるステートメントのすぐ内側setuptools/command/easy_install.py
に印刷するようにパッチを適用しました。パスは問題なく、最初にリストされ、 2 番目に遠いリストです。sys.path
try
foo-1.2
foo-2.0
私は何を間違っていますか?easy_install が非 virtualenvfoo-2.0
インストールを無視し、 foo-1.2
virtualenv 内で受け入れるようにする方法はありますか?
sys.path
卵の中から問題のあるエントリを削除しsetup.py
ても役に立ちません。sys.path
の正しいバージョンのみが含まれていますが、foo
プロセスは同じエラーで失敗します。