2016-05-20 12 views
0

Red Hat Linux 7.2がインストールされたAmazon EC2インスタンスがあります。 Python 2.7.5にはシステム全体がインストールされています。RHEL 7.2で2.7.5と一緒にPython 2.7.8をインストールする際の問題

Python 2.7.8の代替インストールをコンパイルしました(これは、私が複製しようとしている別の環境で使用しています)。これを使ってDjangoアプリケーションを起動するためのvirtualenvを作成します。

しかし、python2.7を呼び出すと、システム全体のpython 2.7.5インタプリタが表示されます。

私が指示に従っ:http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

$ sudo yum groupinstall 'development tools' 
$ sudo yum install zlib-dev openssl-devel sqlite-devel bzip2-devel 
$ sudo yum install wget 
$ sudo wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz 
$ sudo yum install xz-libs 
$ xz -d Python-2.7.8.tar.xz 
$ tar -xvf Python-2.7.8.tar 
$ cd Python-2.7.8 

は、私は次のメッセージが表示されますが、私は」ライン

/usr/local/lib 

$sudo /sbin/ldconfig --> make the dynamic linker aware of the change 

$sudo ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared 
$make 

を追加するため/etc/ld.so.confファイルを編集しますこれが私の問題に関連しているかどうかはわかりません。

Python build finished, but the necessary bits to build these modules were not found: 
_bsddb    _tkinter   bsddb185 
dbm    dl     gdbm 
imageop   sunaudiodev 
To find the necessary bits, look in setup.py in detect_modules() for the module's name. 

$sudo make altinstall 

$which python 
/usr/bin/python ---> system wide Python 2.7.5 
$which python2.7 
/usr/local/bin/python2.7 ---> this should point to Python 2.7.8 that was compiled and installed. 

しかし、システム全体のPython 2.7.5インタプリタにpython2.7ポイントを呼び出す:

$python2.7 
Python 2.7.5 (default, Oct 11 2015, 17:47:16) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2 

ですが、なぜでしょうか?

FYI、私のPATHには/ usr/local/binが含まれています。

$echo $PATH 
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin 

答えて

0

参考:「システムキャッシュに自分のライブラリを追加して、これを必要に応じて他の同じバージョン管理ニシキヘビがなかったとして、それはそう長く働くだろう 『http://koansys.com/tech/building-python-with-enable-shared-in-non-standard-location を、lddを』私は使用することができます」

私はは/etc/ld.so.confから/ usr/local/libを削除し、次のように代わりに-rpathオプションでLDFLAGSを指定することで、私の問題を修正:それは-Wlであること

$sudo ./configure --prefix=/usr/local/python --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/python/lib" 

注意を-W1ではなく(つまり小文字のLで数字1ではなく)。その間違いを理解するのに何時間も費やしました!これを指摘するためにgcc soname unrecognized command line に感謝します。

$make 
$sudo make altinstall 

これが働いており、このパスからPythonインタプリタを起動すると、正常に動作します:ウェブ上の

$/usr/local/python/bin/python2.7 -- version 
Python 2.7.8 

ほとんどのチュートリアルはPythonのサイド・バイ・サイドなどのPython 2.6の2つの異なるバージョンをインストールする方法を説明.xおよび2.7.xまたはPython 2.7.xおよび3.3.x。

両方のインストールがPython 2.7.xの場合、カスタムインストールのパスが/etc/ld.so.confに指定されていると問題が発生しているようです - 取得されるライブラリがシステムのデフォルトに属している可能性があります...私はまだボンネットの下で何が起こっているのか理解していません。

また、/ usr/local/python/binを.bashrcのPATHに追加しました。

しかし、setuptools、pip、virtualenv、およびvirtualenvwrapperをインストールする後続の手順では、python2.7またはpip2.7の完全パスを明示的に呼び出さなければなりません。そうでない場合、パッケージは/ usr/lib/python2 。7/site-packages /を/usr/local/python/lib/python2.7/site-packagesの代わりに使用してください。

関連する問題