既存のvirtualenvを適切にアップグレードできますか?


93

Python 2.5用に作成されたvirtualenvがあり、それをPython 2.6に「アップグレード」したい。

最初に設定した方法は次のとおりです。

virtualenv --no-site-packages -p python2.5 myenv

次に、同じディレクトリでvirtualenvを実行してアップグレードします。

virtualenv --no-site-packages -p python2.6 myenv
...
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6)
...
Overwriting myenv/bin/activate with new content

デフォルトのpythonは2.5ですが、2.6も指定できます。2.5を完全に削除し、代わりに「bin / python」が2.6を指すようにする方法はありますか?

回答:


62

Python 2.6 virtualenvを使用して、既存のディレクトリを「再仮想化」できます。ただし、インストールしたすべてのモジュールを再インストールする必要があります。私はモジュールを開発するための仮想ディレクトリを持っていることが多く、virtualenvは多くのバージョンのPythonと同じディレクトリを持っています。:)


1
ありがとう!私はあなたの方法を試してみましたが、「アクティベート」スクリプトが更新されていますが、古いバージョンが残っています(改訂された質問を参照してください)。例を提供できますか?
Matt Norris

13
python 2.6でvirtualenvを再実行する前に、virtualenvでbin / python実行可能ファイルを削除できます。
カールマイヤー

9
まあ、あなたそれを機能させることができます-しかし、なぜですか?の大きな魅力virtualenvは、簡単かつ安価にpython環境を再現可能にすることです。すべてを修正したか、それをもう一度再現できるか、または新しいクリーンな環境を作成できるときに本番環境を妨害していると確信できないのか?
Ned Deily 2010年

9
@Ned:Virtualenvは再現可能な環境を作成せず、孤立した環境を作成します。それらを再現するには、すべてを同じ方法でインストールする必要もあります。virtualenvでは十分ではありません。zc.buildoutの方が適しています。
Lennart Regebro、2010年

1
@ネッド:要点。これは私が働いていた開発環境です。2.6を絶対に行う必要がない限り、2.5のままにしたかったのです。その必要性が生じたので、ディレクトリを再構築して新しい環境にコピー/貼り付けすることなく、分離された環境をアップグレードしてコードへの影響を確認できるかどうかを知りました。
マット・ノリス

19

Python 3.3 以降では、envは--upgradeフラグをサポートします

  --upgrade             Upgrade the environment directory to use this version
                        of Python, assuming Python has been upgraded in-place.

使用法:

python -m venv --upgrade YOUR_VENV_DIRECTORY

いくつかのプロジェクトでvenvをPython 3.7.xから3.8に問題なくアップグレードしたところです。


1
「Pythonがインプレースでアップグレードされていると想定して」...残念ながら、私のシステムpython3が3.6を指している場合、python3私のvenvで3.7を指すように作成できない
joel

4

新しいvirtualenvを使用して作成し、新しいpython2.6環境をアクティブ化した後python2.6、その環境とその環境を使用して、easy_install必要なサイトパッケージの新しいバージョンをインストールする必要があります。へのパス名がvirtualenv環境内のさまざまなファイルに組み込まれていることに注意してください。それに切り替える準備ができたら、起動スクリプトなどを変更して新しいvirualenvパスを参照するか、コピー先を慎重にコピーしてください。古いディレクトリとその中のパス名の変更。


3

CentOSに2つ目のPythonをインストールする

  1. Pythonをダウンロード
  2. ローカルの差分にインストール

    configure --prefix=/opt/virtualenv/python 
    make && make install
  3. 新しいPythonを使用して仮想環境を作成する

    virtualenv /opt/virtualenv --python=/opt/python276/bin/python

    注:必要に応じて、別のユーザーで行うことができます

    chown pyuser -R /opt/virtualenv
    su - pyuser
    source /opt/virtualenv/bin/activate
    python -v
  4. 仮想環境を作成します。

    virtualenv /opt/virtualenv
    su - infograficos
    source bin/activate
  5. Python 2.7(virtualenv内)でpipをインストールする

    easy_install pip 

0

OS Xを使用している場合、サードパーティのライブラリを機能させたまま、Pythonをマイナーレベルの高いバージョン(2.7.6から2.7.8など)にアップグレードする場合は、これを試してください。

Djangoがインストールされている5つの異なる仮想環境で動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.