短い答えはいいえ、いいえ、virtualenv
ツール自体がパッケージの依存関係を管理する方法はありません。それは通常、pip
のようなツールに依存します。
http://docs.python-guide.org/en/latest/dev/virtualenvs/
あなたがこの問題に
が発生しているのはなぜこれがあなたのenv
が作成された方法によって異なり - githubのクローン対アップZIPファイルを、githubのレポに含まれているもの、例えばそれはあなたが追加提案@tripleee具体的な情報がないとenv/lib
内容
が含まれなかった、それは正確な答えを示唆するのは難しいが、あなたがvirtualenv env
を呼び出して新しいvirtualenvのを作成すると...背中、第一原理に
を行きます、あなたはENVフォルダ(例:env/app.py
)にあなたの.pyファイルをコピーした場合、それはenv
ピップ、setuptoolsのとフォルダと以下のフォルダ
env/bin
env/include
env/lib/python2.7/site-packages/
内に設置された(最近)のホイールを作成し、あなたのアプリがに依存しています外部包装それが失敗すると、/site-packages/
フォルダ内のパッケージを見つけることができませんでした。
/lib/
の内容(ひどい考えです)を含むgitリポジトリからコピーをクローンした場合は、リポジトリにコミットされたパッケージがすべて表示されます。したがって、あなたのアプリが望む外部パッケージがレポ内にない場合、それは失敗します。
あなたのシンボリックリンクコードは、virtualenvフォルダから自分のローカルパッケージフォルダへのシンボリックリンクを実行しているようです...これが動作した場合、virtualenvを正しく使用していない可能性があります最初は実際にはvirtualenv
ではなくローカルマシンでアプリを実行しています。
それはどのように「スクリプト」へ
パッケージとの依存関係を管理するための典型的なアプローチは、上記のリンクで提案されたまさにである、pip freeze > requirements.txt
とpip install -r requirements.txt
のコンボを使用することです。
あなたが依存しているパッケージがPyPi上にない場合(これはおそらくそうだと推測しています)、これを管理できる他の方法があります。
http://docs.python-guide.org/en/latest/shipping/packaging/
これらのシンボリックリンクが必要な場合は、何か問題があります。 *正確に*あなたがやっていることを見ることができるように[mcve]でそれを更新する質問をしてください。 – tripleee
@ tripleeeいいえ、私はできません。これは巨大なレガシープロジェクトです。パッケージをルートディレクトリにシンボリックリンクする必要があります。もし私が通常の状況下でそれを再現できれば、おそらく私はこの質問をしていないだろう;) – Qix