2

Python 2.6で複数のパッケージをインストールして(たとえば、を使用してeasy_install)、Python 2.7にアップグレードしたい場合、Pythonをアップグレードして、インストールされているすべてのパッケージを自動的に「インポート」する方法はありますか?または、再インストールする必要がありますか?

関連する2つの質問:(1)パッケージがPython 2.6パッケージディレクトリにインストールされている場合、Python 2.7などの新しいPythonにインポートすることは正当PYTHONPATHですか、それともすべてのパッケージをPython 2.7で再インストールする必要がありますか?(2)を使用easy_installする場合、新しいPythonを使用するように指示するにはどうすればよいですか?例:2.6ではなく2.7?またはeasy_install、Python 2.7を使用して再インストールする必要がありますか?ありがとう。

4

1 に答える 1

3

pipまず、これは、の代わりに使用したい多くの理由の1つですeasy_installeasy_install(それでも自分自身を取得する必要がありますpipが、それを超えて、二度とそれに触れないでください。)使用pipしたことがある場合は、これを行うことができます。

pip freeze > modules.dump

これにより、インストールしたすべてのモジュールとそのバージョン番号のリストが表示されます。ほとんどの場合、モジュールのリスト(line.split('==')[0] for line in f)を取得して、に渡すことができpip installます。

しかし、それは将来の参考のためです。site-packages今日は、ディレクトリを調べて自分でつなぎ合わせる必要があります。幸いなことに、多くのことが最終的にはになるfoo_bar-1.2.3.4-blah-blah.eggので、あなたがしなければならないのは、パッケージの名前 がPyPIであるfoo-barfoo_bar、PyPIであるかを推測するeasy_installことだけpipです。したがって、完全に自動化することはできません、近づくことはできます。

しかし、はい、どのように実行しても、再インストールする必要があります。C拡張コードが必要なものはすべて再コンパイルする必要があります。Pure-Pythonパッケージを変更する必要はないかもしれませんが、変更する必要があります。申し訳ありませんが、安全性は高くなります。また、あるものをコピーしようとして、他のものをコピーしようとしない場合、依存関係を大きく混乱させることになります。

(1)パッケージがPython 2.6パッケージディレクトリにインストールされている場合、Python 2.7などの新しいPythonのPYTHONPATHにインポートすることは正当ですか、それともすべてのパッケージをPython 2.7で再インストールする必要がありますか?

そうしないでください。上で説明したように、それらを再インストールします。

(2)easy_installを使用している場合、新しいPythonを使用するように指示するにはどうすればよいですか?例:2.6ではなく2.7?または、Python 2.7を使用してeasy_installを再インストールするだけで、これを実行できますか?ありがとう。

2.7が必要ですeasy_installeasy_install通常、たとえば、を実行することで2.7と2.6を使用できますpython2.6 $(which easy_install)が、その逆が機能することは保証されていません。

そして、あなたはとにかくそれをしたくありません。2つのバージョンのPythonを並行して使用する場合は、2つのバージョンを使用する必要がありeasy_installます。通常は、「プライマリ」Pythonと見なす方へのシンボリックリンクとしてeasy_install-2.6easy_install-2.7を使用します。easy_install

于 2013-01-15T00:01:07.633 に答える