2011-01-24 6 views
1

私はUbuntuを使用しています。私はPythonの新しいバージョンをインストールします。しかし、imdbPy、NumPy、Cythonなどの私のインストールされたライブラリはすべて、バージョン番号が2.6.6のPythonの以前のバージョンでも実行できます。私は2.6.6でCythonをインポート旧バージョンのPythonの古いライブラリをPythonの新しいバージョンに移動するには

、TTは動作しますが、私はpythonの

import cython 

の2.7.0+バージョンで同じことをしようとは、次のようなエラーが発生します。

import cython 
ImportError: No module named cython 

を何私はbashで使われているPythonのデフォルトバージョンを変更する必要があります。私は、bashプロファイルファイルを変更することで対応できると思います。また、これらのライブラリをすべて適切な場所に移動して、Pythonの新しいバージョンが永続的にそれらに到達できるようにしたいと思います。

+0

2番目の例ではCythonを大文字にしていますが、pythonでは大文字と小文字が区別されますので、そうしないでください。 –

答えて

0

setuptoolsを使用してライブラリを再インストールしてみてください。実際には、いくつかの非互換性があるかもしれないので、Python 2.7で古い2.6のlibsを使うのではなく、再インストールすることをお勧めします。

+0

私の別の質問に答えることができますか?私はデフォルトのバージョンのPythonを変更するために何をすべきですか?はい、古いバージョンを削除すると、コンピュータに新しいバージョンのPythonしかありません。しかし、私はPythonの私の古いバージョンをアンインストールしないと仮定してください。私は何をすべきか? – Thorn

+0

私がこれを尋ねる理由は、パッケージマネージャーが私にPython 2.6を削除すれば、たくさんの依存関係が取り除かれたと言って脅迫しています。 – Thorn

0

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

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

/opt/python27/bin/pip install Cython 
2

は、あなたのシステムとの混乱は、インストールしないでください - パッケージマネージャはそのための責任を負わなければなりません。ソースからインストールするときは、別のディレクトリに作成してください。

自分のホームディレクトリに物をインストールします。私はこれは私が側でのpython側の異なるバージョンを維持するために使用するものですjhbuild好き:のpython 2.3から2.7を構築し、その環境に入るためのスクリプトを作成することをチェックアウトからmakeを実行https://thomas.apestaart.org/thomas/trac/browser/jhbuild/python

[[email protected] ~]$ py-2.4 
Entering interactive py shell /bin/bash 
[py-2.4] [[email protected] ~]$ 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. 
>>> 
0

明らかにパッケージ管理ツールは、私が言及しようとしているすべてのもの(プラス互換性と依存性をチェックする)を設定できるはずですが、ここにいくつかの問題があります。あなたが選択したパッケージマネージャ:

変更する前に、をチェックしてくださいをecho $PATHをbashで使用してください。ディレクトリは、検索される順序でリストされます。

PATHのディレクトリの順番を変更して、希望のバージョンがPATHに最初に表示されるように、bashで使用するPythonのバージョンを判断できます。

export PATH=opt/local/bin:$PATH

あなたがチェックすることができます:あなたはusr/local/binopt/local/binではなく、1でPythonのバージョンが必要な場合は

たとえば、次のような行を使用して.bash_profile.bashrcファイルにPATHを設定することができますPythonのバッシュのファイルパスを用いて使用されている:ライブラリとして which python(bashで入力された)

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

Pythonの特定のバージョンの別のフォルダに新しいライブラリが全くない限り、特に多くのライブラリが他のライブラリに依存するため、古いバージョンのものを使用する可能性があります。

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

あなたはこのようにインポートしたPythonモジュールのディレクトリパスを確認することができます。

import Cython 
print Cython.__file__ 

がうまくいけば、このすべてのお好みのパッケージマネージャでの世話をされますが、あなたは、少なくとも確認することができますあなたが問題に遭遇した場合は、あなたの道を慎重に

関連する問題