1

私はUbuntuを使用しています。新しいバージョンの python をインストールします。しかし、imdbPy、NumPy、Cython などのインストール済みライブラリはすべて、バージョン番号が 2.6.6 の以前のバージョンの python で実行できます。

2.6.6 で Cython をインポートすると、tt は機能しますが、2.7.0 以降のバージョンの python でも同じことを試します。

import cython

次のようなエラーが発生します。

import cython
ImportError: No module named cython

必要なのは、bash で使用される python のデフォルト バージョンを変更することです。bashのプロファイルファイルを修正することで対応できると思います。また、これらのライブラリをすべて適切な場所に移動して、新しいバージョンの Python が永久にアクセスできるようにしたいと考えています。

4

4 に答える 4

2

システムのインストールを台無しにしないでください-パッケージマネージャーがそれを担当する必要があります。ソースからインストールする場合は、別のディレクトリで実行してください。

ホームディレクトリに物をインストールします。私は jhbuild が好きなので、さまざまなバージョンの Python を並べて維持するためにこれを使用しています: https://thomas.apestaart.org/thomas/trac/browser/jhbuild/python

そのチェックアウトから make を実行すると、python 2.3-2.7 がビルドされ、環境に入るスクリプトが作成されます。

[thomas@level ~]$ py-2.4 
Entering interactive py shell /bin/bash
[py-2.4] [thomas@level ~]$ python
Python 2.4.5 (#1, Dec 16 2010, 18:51:06) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
于 2011-01-24T13:14:11.950 に答える
0

setuptoolsを使用してライブラリを再インストールしてみてください。実際、Python 2.7 で古い 2.6 ライブラリを使用しようとする代わりに、再インストールすることをお勧めします。互換性がない可能性があるためです。

于 2011-01-24T11:41:43.223 に答える
0

新しいバージョンのすべてのライブラリを再インストールする必要があります。

最初に pip をダウンロードしてインストールすることをお勧めします。その後、/path/to/Python27/bin/pip install <packagename>たとえば、ほとんどのパッケージをインストールできます

/opt/python27/bin/pip install Cython
于 2011-01-24T12:19:23.250 に答える
0

明らかに、パッケージ管理ツールが最適な方法です。なぜなら、私が言及しようとしているすべてのものを設定できるはずだからです (さらに、互換性と依存関係をチェックします)。選択したパッケージ マネージャー:

変更を加える前に、bashPATHで使用して確認してください。echo $PATHディレクトリは、検索された順序でリストされます。

PATH必要なバージョンが最初に表示されるようにディレクトリの順序を変更することで、bash で使用されている python のバージョンを判別できますPATH

たとえば、opt/local/binではなく Python のバージョンが必要な場合は、次のような行を使用してまたはファイルにusr/local/bin設定できます。PATH.bash_profile.bashrc

export PATH=opt/local/bin:$PATH

python bash が使用しているファイル パスを次のように確認できます: which python(bash で入力)

ライブラリに関してはPYTHONPATH、bash とsys.pathpython が正しく設定されていることを確認してください。これにより、適切なライブラリが検出され、古いものの代わりに更新された互換性のあるバージョンが使用されます。また、追加したいディレクトリへのパスを含む .pth ファイルを作成し、bash でsys.path使用PYTHONSTARTUPして、起動時に を設定するモジュールを実行することもできますsys.path

特定のバージョンの python 用の別のフォルダーにまったく新しいライブラリ セットがない限り、問題が発生する可能性があります。特に、多くのライブラリが他のライブラリに依存しているため、互いの古いバージョンを使用する可能性があるためです。

sys.path同じ名前を使用するモジュールが複数ある場合、競合する可能性があります。

次のように、インポートした python モジュールのディレクトリ パスを確認できます。

import Cython
print Cython.__file__

うまくいけば、これらすべてが選択したパッケージ マネージャーによって処理されることになりますが、問題が発生した場合は、少なくともパスを注意深く確認することができます。

于 2011-01-24T13:46:14.690 に答える