2017-01-07 10 views
0

私のシステムでPythonをPython 3.5から3.6にアップグレードしたので、Python 3.5で作成されたすべてのvirtualenvは使用できなくなりました。 Python 3.6のみをインストールした場合、Python 3.5 virtualenvにインストールされているパッケージのリストを取得するにはどうしたらいいですか?古いPython 3.5 virtualenvと同じパッケージで新しいPython 3.6 virtualenvをセットアップする必要があります。以前のPythonバージョンから仮想環境をアップグレードするにはどうすればよいですか?

私はlib/python3.5/site-packagesディレクトリを見てリストを手動で作成できますが、自動的に実行することをお勧めします。 pip freezeを古い仮想環境と比較します。古いバージョンのPythonを再インストールしたくないです。

python -m venv --upgradeコマンドを試してみましたが、ヘルプテキスト "このバージョンのPythonを使用する環境ディレクトリをアップグレードします。これは、Pythonがインプレースでアップグレードされたと仮定しています。"しかし、これは実際にはvirtualenvにパッケージを再インストールするわけではなく、ちょうどlib/python3.6/site-packagesという名前の本質的に空のディレクトリを作成するだけです。さらに、私は古いvirtualenvに対してpython -m venv --upgradeを実行するために、venv内の破損したシンボリックリンクbin/python3.5を削除しなければなりませんでした。

答えて

1

virtualenvをアップグレードしない状況に簡単になるようです。あなたはおそらく手動でvenvを修正することができますが、私は再び開始するのが最も簡単だと思います。簡単に言うと

  • venv環境の一部ではない古いvenv内のディレクトリ、それに新しいvirtualenvの
  • コピーを作成します。古い環境で
  • ls -1 lib/python3.5/site-packages > requirements.txt、この関連の質問を参照してください

pip install -r requirements.txt 新しい環境では、手で

  • それをクリーンアップ:同じロジックを使用してパッケージを見つけること Update a Python virtualenv?

  • 0

    使用pkg_resources.find_on_path()pip freezeとなります。

    関連する問題