Ubuntu 12.04でのPython 2.7.5へのアップグレード


9

Ubuntu 12.04はpython v 2.7.3デフォルトで付属しています。にアップグレードしたいv 2.7.5。私はこの質問で与えられた指示を試しました、

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

最後のコマンドは次のエラーで失敗します:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

このアップグレードを行うにはどうすればよいですか?


3
2.7.5にアップグレードする必要があると確信していますか?Ubuntuでは、すべてのバグ修正が2.7.3にバックポートされています。ソースからコンパイルすることで、本当に頭痛の種をすべて節約したいのです。2.7.5をインストールする具体的な理由を入力してください。このサイトでは、壊れたPythonのインストールについての質問は日常業務であり、ソースからのインストールが原因であることがよくあります。たとえば、askubuntu.com
q

1
私はパッケージを間違った方法で使用していましたが、問題は依然として解決されず、説明が与えられていないため、実際には反対票を理解できません。
ガブリエル

sudo make **install**代わりに実行するとsudo make **altinstall**どうなりますか?同じエラーが発生しますか?
ケビンボーウェン

何度も聞いたことがあるので、システムが壊れてしまうので、実際にソリューションを試しみることを恐れています。本当に完成しているように見えるので、私はあなたの答えを受け入れられたものとしてマークします。ありがとうございました。
ガブリエル

2
@Gabriel maggotbrainによるソリューションは非常に優れたソリューションです。選択したバージョンをpyenvにインストールできます。システムのPythonに害はありません。これは今後の質問のために覚えておきます。:)
gertvdijk 2013

回答:


13

もちろん、ソースからのインストールも可能ですが、いくつかの理由により、Ubuntuシステムのpythonパッケージをソースからアップグレードすることをためらっています。

  1. これを行うと、ソースから直接コンパイルしてシステムを破壊する可能性があります(UbuntuがPythonパッケージビルドをどのようにカスタマイズするかは正確にはわかりません)。

  2. 今後、リポジトリのモジュールを使用する際に問題が発生するのではないかと心配になります。

ありPPAは(2.7.35列車は今年の4月に作られた)アクティブに見えるが、PPAはまだ2.7.5ビルドを持っていません。メンテナにpingを送信して、将来のビルドの計画や、2.7.5の計画を含めるかどうかを確認することをお勧めします。可能であれば、ソースからインストールするよりもこれをお勧めします。他の新しいソフトウェアと同様に、最初にテストシステムでこれを構築することをお勧めします。

もう1つのオプションは、sandbox(pyenv)を使用して、テストされていない新しいソフトウェアパッケージを実行することです。システムに直接インストールすると、マシンの動作に悪影響を与える可能性があります。

パッケージpyenvを使用すると、マシンにインストールされているメインのPythonパッケージに影響を与えることなく、システムにないバージョンのPythonをボックスにインストールできます(この場合も、システムは現在インストールされているバージョンのPythonに依存しており、アップグレードするとシステムが壊れる可能性があります)。以前は、システムからpythonパッケージを分離するためにPythonbrewが推奨されていましたが、それ以降、pyenvパッケージは廃止され、置き換えられました。

このpyenvパッケージは、次の機能を提供します。

  • ユーザーごとにグローバルPythonバージョンを変更できます。
  • プロジェクトごとのPythonバージョンのサポートを提供します。
  • Pythonのバージョンを環境変数でオーバーライドできます。
  • 一度に複数バージョンのPythonからコマンドを検索します。

取り付け

  1. pyenvを〜/ .pyenvにチェックアウトします。

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. 〜/ .pyenv / binを$ PATHに追加して、pyenvコマンドラインユーティリティにアクセスできるようにします。

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Zshの注:~/.zshenvではなく、ファイルを変更してください~/.bash_profile

  3. シェルにpyenv initを追加して、shimと自動補完を有効にします。

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Zshの注:~/.zshenvではなく、ファイルを変更してください~/.bash_profile

  4. シェルを再起動して、パスの変更を有効にします。これでpyenvの使用を開始できます。

    exec $SHELL
  5. Pythonバージョンを〜/ .pyenv / versionsにインストールします。たとえば、Python 2.7.5をインストールするには、ソースをダウンロードして解凍し、次のコマンドを実行します。

    pyenv install 2.7.5

    注ソースからビルドするために構成オプションを渡す必要がある場合は、CONFIGURE_OPTS環境変数を使用してください。

  6. シムバイナリを再構築します。これは、新しいPythonバイナリをインストールするとき(たとえば、新しいPythonバージョンをインストールするとき、またはバイナリを提供するパッケージをインストールするとき)に行う必要があります。

    pyenv rehash

1
pyenv多くの理由で素晴らしいです。初期設定後の最小限の手間で、実験を非常に手助けしてくれます。
Fahad Yousuf 2013

これは特定のユーザーのhomeフォルダーから実行されますか?これをすべてのユーザーにインストールするにはどうすればよいですか?にインストールできますか./pyenv/usr/local/binそれとも悪い考えですか?
バイオハザード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.