web-dev-qa-db-ja.com

python2.7は今後10.04で使用できるようになりますか?

Ubuntu 10.04はLTSリリースであるため、デフォルトのパッケージメンテナーバージョンとしてpython 2.7をサポートしますか、それとも少なくともpython2.7パッケージを持っていますか?

それは最後のメジャーpython 2.xリリースであり、長期間その場所にとどまることを目的としているため、使用することにしました。ソースからコンパイルしました(もちろん、depsをビルドした後)が、ときどき小さな問題を見つけます。

Pythonで動作するディストリビューションアプリケーションがいくつかあるため、コンパイル済みのpython 2.7をデフォルトとして定義しても安全ですか?.

27
crodjer

いいえ、2.7をデフォルトのPythonインタープリターin Lucidとして定義することは安全とは見なされません。そして、私はそれが将来になるとは思わない。

  • 1つのリリースにソフトウェアのメジャーバージョンアップグレードはありません。

    したがって、python2.7はデフォルトのインタープリターとしての2.6を置き換えません。この種のアップグレードは、1つのバージョン間、特にLTS内でのみ行われます。いわゆる安定リリースアップグレード、つまりバグ修正とセキュリティ関連のアップグレードのみがあります。

ただし、python2.7を使用してインタープリターを#!/usr/bin/python2.7として定義し、ユーザーがpython [2.6]と一緒にpythonソースでmake altinstallを使用してインストールすることは完全に安全です。

16
Stefano Palazzo

MaverickにアップグレードできないVPSで同じ問題が発生しました(新しいLTSイメージでさえ、時間通りに利用できるとは限りません)。 Mariusの答え は私を始めるためのトリックでしたが、それを拡張する必要があります:

PPAをソースに追加します

私の状況では、add-apt-repositoryを実行するという簡単なアドバイスはうまくいきません。それでは、これを昔ながらの方法でやってみましょう。

  1. ファイル/etc/apt/sources.listを開きます(ルート権限が必要です。シェルを使用している場合、これはおそらくSudo vim /etc/apt/sources.listを実行することを意味します)。

  2. ファイルの一番下まで移動し(vimを使用している場合、iを押して挿入モードに切り替えます)、次の行を追加します。

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    
  3. 保存して終了し(vim:wqと入力)、シェルに戻ります。

  4. 以下を入力します(正しいキーを見つけることができます PPAで ;「技術的詳細」のスラッシュの後の部分です-正しいキーを取得したことを確認してください):

    Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
    
  5. ソースリストを更新するには、次を入力します。

    Sudo apt-get update
    

インストールおよびセットアップPython 2.7

  1. サーバーでシェルを開き、次を入力します。

    Sudo apt-get install python2.7 python2.7-dev
    
  2. easy_installを機能させるには、distributeブートスクラップスクリプトを取得します。

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
    
  3. 最後に、何か深刻なことをするつもりなら、pipvirtualenvを使いたいと思います:

    easy_install-2.7 pip
    pip-2.7 install virtualenv
    

Virtualenvのセットアップ

  1. 新しい環境用のフォルダーを作成して開きます。

    mkdir my_env && cd my_env
    
  2. 仮想環境自体を作成します(ドットは、現在のディレクトリが環境の場所であることを示します。前の手順をスキップした場合は、正しいパスに置き換えます)。

    virtualenv --no-site-packages --python=python2.7 .
    
  3. 環境をアクティブにします。アクティブな環境を反映するようにシェルプロンプトが変更されていることに気付くでしょう。

    source bin/activate
    
  4. このシェルで何をするにしても、仮想環境のbinフォルダーとその環境のPythonパッケージ内のスクリプトを使用します。オプション--no-site-packagesは、パッケージの最小セット(pipを含む)から開始することを意味するため、必要なすべてのパッケージをインストールする必要があることに注意してください。

  5. 完了したら、環境を非アクティブ化します(これはアクティブな環境によって認識されるコマンドです)。

    deactivate
    

-Eオプションをpipに渡すことで、仮想環境にパッケージをインストールすることもできます(例:pip install some-package -E /path/to/virtual/environmentを使用して、指定されたパスの仮想環境にsome-packageをインストールします)。インストールされている異なるPythonバージョンに対応するpipのいくつかの異なるバージョンがあることに留意してください。

仮想環境の外部で作業するときにPython 2.7のパッケージをインストールする場合は、pip-2.7を使用することをお勧めします(virtualenvに渡した--python=python2.7オプションは仮想環境は、提供するツールのPython 2.7バージョンを使用するため、心配する必要はありません)。

41
Alan Plum

PPAがあります Ubuntu 10.04用にビルドされたPython 2.7ソースからビルドするよりも安全/便利かもしれません。

10
Marius Gedminas

これにより、私が抱えていたあらゆる種類の問題が解決されました https://stackoverflow.com/questions/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-mod

libpython2.7.so.1.0は私のpython2.7などにリンクしています。

私がそれを理解するために必要な最後のピースは、mod_wsgiインストールでした。単に発行する場合:

$ apt-get install libapache2-mod-wsgi

次に、これはPython2.6用にコンパイルされます:(

$ ldd /usr/lib/Apache2/modules/mod_wsgi.so

libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)

そこで、Gork-Zope here の指示に従いました。

ようやく動作するサーバーができました。ありがとうございました。

2
Naoko

10.04バージョンに関連付けられているプログラムとライブラリの多くを変更する必要があるため、そうは思いません。実際、Ubuntuでの作業の多くは、特定のpythonバージョンを使用して行われます。 pythonに変更すると、多くのシステムファイルが変更されます。

10.10ではpython2.7をインストールするだけでsynaptic/aptitudeから入手できます(3と3.1もインストールできます)が、10.04では10.04に対応するための作業はありません。

10.10のデフォルトはpython 2.6です。答えが肯定的ではなかったが、変更のアイデアを提供したかっただけの場合は申し訳ありません。

編集-Python 2.7を以下のコメントから二重チェックされたため、デフォルトとしてPython 2.6に変更しました。ありがとうございました。

1
Luis Alvarado