5

多くの依存関係を持つ比較的大きなプロジェクトがあり、このプロジェクトを配布したいと考えていますが、これらの依存関係をインストールするのは少し面倒で、非常に長い時間がかかります (pip のインストールにはかなりの時間がかかります)。そのため、virtualenv 全体を別のマシンに移行して実行できるかどうか疑問に思っていました。

virtualenv 全体をコピーしようとしましたが、何かを実行しようとすると、この virtualenv はまだ古いマシンのパスを使用しています。たとえば、私が実行するとき

source activate
pserve development.ini 

私は得る

bash: ../bin/pserve: /home/sshum/backend/bin/python: bad interpreter: No such file or directory

これは私の古いディレクトリです。それで、virtualenvにこのパスを新しいパスで再構成させる方法はありますか?

sed -i 's/sshum/dev1/g' *bin ディレクトリで試してみたところ、その問題は解決しました。ただし、現在別の問題が発生しています。この sed が何かを変更したと思います。

libssl-devインストールしたことを確認しましたが、実行すると次のpythonようになります。

E: Unable to locate package libssl.so.1.0.0
E: Couldn't find any package by regex 'libssl.so.1.0.0'

しかし、実行するaptitude search libsslと次のように表示されます。

i A libssl-dev        - SSL development libraries, header files and documentation

私も試しvirtualenv --relocatable backendましたが、うまくいきませんでした。

4

3 に答える 3

2

仮想環境のエクスポート

仮想環境内から:

pip freeze > requirements.txt

例として、これは myproject 仮想環境の場合です。
ここに画像の説明を入力

新しいマシンと環境で、requirements.txt を新しいマシンの新しいプロジェクト フォルダーにコピーし、ターミナル コマンドを実行します。

sudo pip install -r requirements.txt

その後、古い仮想環境で以前に利用可能だったすべてのパッケージが必要です。

于 2020-06-30T18:57:45.213 に答える
0

新しい virtualenv を作成すると、それが実行されているコンピューター用に構成されます。作成された特定のディレクトリ用に構成されているとさえ思います。そのため、コードを移動するときは常に新しい virtualenv を作成する必要があると思います。lib/Pythonx.x/site-packages を virtualenv ディレクトリにコピーすることでうまくいくかもしれませんが、それは特に良い解決策ではないと思います。

より良い解決策は、pip ダウンロード キャッシュを使用することです。これにより、少なくとも pip install のダウンロード部分が高速化されます。このスレッドを見てください: How do I install from a local cache with pip?

于 2013-04-28T12:40:44.547 に答える