3

Python を 2.4 から 2.6 にアップグレードする際に問題があります。

CentOS 5 (フル) を持っています。/usr/lib/python2.4/ にあるpython 2.4があります。追加のモジュールは /usr/lib/python2.4/site-packages/ にあります。/usr/local/lib/python2.6/ のソースから python 2.6 をビルドしました。デフォルトの python を python2.6 に設定しました。現在、2.4 の古いモジュールは pythonpath から外れており、「失われています」。特に、yum が壊れています (「yum という名前のモジュールがありません」)。

モジュールをpython2.6に移行/インストールする正しい方法は何ですか?

4

4 に答える 4

3

それらは壊れていません。単にインストールされていません。その解決策は、それらを 2.6 の下にインストールすることです。しかし、最初に、本当にそれを行うべきかどうかを確認する必要があります...

はい、Python をインストールすると、python コマンドがインストールされているバージョンに置き換えられます (--alt-install を指定して実行しない限り)。あなたの問題が何であるかを正確に述べていないので、推測します。あなたの問題は、Python 2.4 ではなく Python 2.6 で実行されるため、Python を使用する多くのローカル コマンドが失敗することです。あれは正しいですか?

その場合は、単純に /usr/local/bin/python を削除し、/usr/bin/python が /usr/bin/python2.4 へのシンボリック リンクであることを確認してください。次に、python2,6 を実行するには python2.6 と入力する必要がありますが、それで問題ありません。それが最善の方法です。その後、2.6 で必要なパッケージのみをインストールする必要があります。

しかし、私の推測が間違っていて、2.6 未満のパッケージをすべてインストールする必要がある場合でも、あまり心配する必要はありません。まず、setuptools をインストールします。これには easy_install スクリプトが含まれており、次のコマンドでモジュールをインストールできます

easy_install <modulename>

pypi.python.org からモジュールをダウンロードしてインストールします。また、依存関係にあるモジュールもインストールされます。easy_install は、distutils をインストーラーとして使用しているモジュールをインストールできますが、そうでないモジュールはほとんどありません。これにより、これらのモジュールの 90% を簡単にインストールできます。

モジュールに C コンポーネントが含まれている場合は、それがコンパイルされ、ライブラリ ヘッダーも必要になります。これはより多くの作業になります。標準の CentOS の方法でそれらをインストールするだけです。

通常、ライブラリは特定のバージョン用であるため、バージョン間でシンボリック リンクを使用しないでください。2.4 と 2.6 の場合、.pyc ファイルは互換性があると思います (ただし、100% 確実ではありません)。これで動作する可能性がありますが、C を使用するモジュール壊れます。また、他のバージョンの Python にも互換性のない .pyc ファイルがあります。そして、あなたがそうしても、ほとんどの Python 関係者はあなたを助けようとはしないでしょう。;-)

一般に、私はシステム python を「クリーン」に保つようにしています。つまり、パッケージ ツールでインストールされていないものは何もインストールしません。代わりに、virtualenv または buildout を使用して、すべてのアプリケーションが依存関係が存在する独自の python パスを持つようにします。したがって、私が持っているすべてのプロジェクトには、基本的に独自のライブラリ セットがあります。そのように簡単になります。

于 2009-07-04T09:46:06.313 に答える
0

easy_installは良いものですが、モジュールをインストールするための低レベルの方法があります。

  1. モジュールソースをいくつかのディレクトリに解凍します
  2. 「pythonsetup.pyinstall」と入力します

もちろん、これは必要なインストール済みのpythonインタープリターバージョンで行う必要があります。タイプを確認するため:

python -V

于 2009-07-05T23:19:16.510 に答える
0

いくつかのオプションがあります...

  1. モジュールが Python 2.6 で実行される場合は、2.6 の site-packages ディレクトリから 2.4 の site-packages ディレクトリへのシンボリック リンクを簡単に作成できます。

  2. 2.6 で動作しない場合は、2.6 に対して再コンパイルするか、最新バージョンをインストールする必要があります。呼び出すときに2.6を使用していることを確認してください"python setup.py"

...

さらに問題が発生した場合は、serverfault.com に投稿することをお勧めします。

于 2009-07-04T07:04:44.293 に答える
0

site-packagesPython 2.6が に変更されたため、一部の Python ライブラリにはまだアクセスできない場合がありますdist-packages

その場合の唯一の方法は、site-packages で生成されたすべてのもの (たとえば によってmake install) を dist-packages に移動し、sym-link を作成することです。

于 2009-07-04T11:40:09.000 に答える