2011-03-08 6 views
73

私はPythonには新しく、Linuxマシン(Ubuntu 10.10)で作業しています。それはPython 2.6を実行していますが、使用したい機能があるので2.7を実行したいと思います。私は2.7をインストールせず、デフォルトのPythonとして設定するよう促されています。Python 2.7 on Ubuntu

私の質問は、2.7をインストールして、それを2.6と並べて実行するにはどうすればいいですか?

答えて

1

http://www.python.org/download/releases/2.7.1/からPython 2.7をダウンロードしてビルドするだけです。

+1

ありがとうございました。私はその部分を持っていますが、私の質問は、2つのバージョン間を行き来する方法についてです。 Rubyでは、複数のRubyバージョンを管理するためにRVMを使用します。 Pythonには同等のものがありますか、それとも必要ありませんか? – jimdolan

+11

しかし、 "make install"の代わりに "make altinstall"を使用してください。 "make install"は2.7をデフォルトのバージョンに設定し、あなたはそれを望んでいません。 "make altinstall"は、システムのPythonだけを残し、 "python2.7"を使用して呼び出す必要があります。 – casevh

+0

はい、altinstallを実行する方法です。 – codeape

109

私はUbuntu 10.10マシンでpythonbrewとしました。

$ python -V 
Python 2.6.6 
$ curl -kL https://raw.github.com/utahta/pythonbrew/master/pythonbrew-install | bash 
$ . $HOME/.pythonbrew/etc/bashrc 
$ pythonbrew install 2.7.1 
$ pythonbrew switch 2.7.1 
Switched to Python-2.7.1 
$ python -V 
Python 2.7.1 

I also used it to install Python 3.2

+2

行は何ですか? $ HOME/.pythonbrew/etc/bashrcは何ですか? – bharal

+0

また、pythonbrewを常に使用可能に設定しないでください。それは私が... um、何かをする必要があるという意味ではありませんか?私がログアウトしてもう一度ログインすると、私のpythonbrewは忘れられてしまいます。私は上の行はそれと関係があると思います...しかし何ですか? – bharal

+0

そうです、その行は、そのファイルのすべてのコマンドを実行することによってpythonbrewを設定します。 .bashrcファイルにその行を追加するだけで毎回発生します。 – oylenshpeegul

1

virtualenvを使用すると、別個のPython環境を作成できます。ちょうどニュースですが、Python 2.7には何が必要なのですか?

+2

私はargparseで作業したいです。私はpython newsyですが、dev newsyではありません;) – jimdolan

+1

正規表現のフラグ! – Nils

+0

フラグはAFAIKの2.7前後でした。 – Tom

1

自分でコンパイルしたくない場合は、ActivePythonをインストールすることもできます。それにはbinary package managerも含まれています。まあ

5

あなたが必要とする唯一のものはargparseであれば(コメントの一つであることを見た!)あなただけ行うことができます:

pip install argparse 

これは:-)正確な質問に正確に答えはありませんが、

2.7 noveltiesのリストは確かに長いですが、他の新機能のほとんどは、おそらく、大きなミスはない、と引き換えに、あなたと周りの混乱をしないでmemoryviewを交換することができるはずですあなたの箱に複数のpythonがインストールされています。そうでなければpythonbrew :-)に行く

10

私は最近、Python 2.7をDebian squeezeにバックポートしました。 Ubuntu 10.10はDebianのSqueezeよりも新しいので、あなたがSqueezeでそれを行うことができれば、確かにUbuntu上で行うことができます。私はUbuntu 10.10システムにアクセスできない。私が1つを設定すると、私はそれをテストし、この答えを更新します。ですから、代わりに私がDebianで行ったことの簡単なスケッチです。

まず、一般的かつ明白なコメントですが、見落としやすいものです。 Debianパッケージのリストされたビルドの依存関係をあまりにも重視するべきではありません。彼らは必要以上に具体的かもしれません。たとえば、ポータブルで幅広いシステムで動作するように設計されたPythonのようなソフトウェアは、非常に特定のバージョンのソフトウェアに依存して構築することはまずありません。ランタイム依存性も同様に調整できますが、これはもっと注意して行う必要があります。しかし、ランタイム依存性は、主にこのシステム上にあるソフトウェアに基づいて動的に生成されるため、通常は大きな問題ではありません。私たちはdebian/controlを見てみると

apt-get source python2.7=2.7.2-8 

を取得し、テストバージョンを選択

apt-cache policy python2.7 
python2.7: 
    Installed: 2.7.2-8 
    Candidate: 2.7.2-8 
    Version table: 
    2.7.2-12 0 
     50 http://debian.csail.mit.edu/debian/ unstable/main i386 Packages 
    2.7.2-8 0 
     50 http://debian.csail.mit.edu/debian/ testing/main i386 Packages 
*** 2.7.2-8 0 
     100 /var/lib/dpkg/status 

、我々は次のビルド依存行を参照してください。

ビルド依存:debhelper(> = 5)、キルト、autoconf、libreadline-dev、libtinfo-dev、libncursesw5-dev(> = 5.3)、tk8.5-dev、zlib1g-dev、blt-dev > 2.4z)、libssl-dev、libexpat1-dev、sharutils、libbz2-dev、libbluetooth-dev [linux-any]、locales [armel!avr32!hppa!ia64!mipsel]、libsqlite3-dev、libffi-dev (> = 3.0.5)、mime-support、libgpm2 [linux-any]、netbase、lsb-release、bzip2、libdb4.8-dev、gdb、python、help2man Build-Depends-Indep:python-sphinx ビルド-Conflicts:tcl8.3-dev、tk8.3-dev、tcl8.4-dev、tk8.4-dev、python2.7-xml、python-xml、autoconf2.13、libncurses5-dev

これは圧迫で容易に満足される。便利なユーティリティapt-show-versionsで、私たちは、私のマシン上で

apt-show-versions debhelper quilt autoconf libreadline-dev libtinfo-dev libncursesw5-dev tk8.5-dev zlib1g-dev blt-dev \ 
libssl-dev libexpat1-dev sharutils libbz2-dev libbluetooth-dev locales libsqlite3-dev \ 
libffi-dev mime-support libgpm2 netbase lsb-release bzip2 libdb4.8-dev gdb python help2man python-sphinx 

autoconf/squeeze uptodate 2.67-2 
blt-dev/squeeze uptodate 2.4z-4.2 
bzip2/squeeze uptodate 1.0.5-6 
debhelper/squeeze-backports uptodate 8.9.13~bpo60+1 
gdb/squeeze uptodate 7.0.1-2+b1 
help2man/squeeze uptodate 1.38.2 
libbluetooth-dev/squeeze uptodate 4.66-3 
libbz2-dev/squeeze uptodate 1.0.5-6 
libdb4.8-dev/squeeze uptodate 4.8.30-2 
libexpat1-dev/squeeze uptodate 2.0.1-7 
libffi-dev/squeeze uptodate 3.0.9-3 
libgpm2/squeeze uptodate 1.20.4-3.3 
libncursesw5-dev/squeeze uptodate 5.7+20100313-5 
libreadline-dev/squeeze uptodate 6.1-3 
libsqlite3-dev/squeeze uptodate 3.7.3-1 
libssl-dev/squeeze uptodate 0.9.8o-4squeeze5 
libtinfo-dev not installed 
locales/squeeze uptodate 2.11.2-10 
lsb-release/squeeze uptodate 3.2-23.2squeeze1 
mime-support/squeeze uptodate 3.48-1 
netbase/squeeze uptodate 4.45 
python/squeeze uptodate 2.6.6-3+squeeze6 
python-sphinx/squeeze-backports uptodate 1.0.8+dfsg-2~bpo60+1 
quilt/squeeze uptodate 0.48-7 
sharutils/squeeze uptodate 1:4.9-1 
tk8.5-dev/squeeze uptodate 8.5.8-1 
zlib1g-dev/squeeze uptodate 1:1.2.3.4.dfsg-3 

を取得我々はlibtinfo-dev除くすべてがスクイズで利用可能であることがわかります。私はdebhelperpython-sphinxのスクイーズバックポートバージョンを持っていますが、ビルド要件を満たすバージョンのdebian squeezeでも利用できます。

私はのlibncurses5-devのは、これらのパッケージの両方がソースパッケージcurses 5.7+20100313-5に対応

apt-show-versions libncurses5-dev 

libncurses5-dev/squeeze uptodate 5.7+20100313-5 

がインストールされていることも確認します。実際に libtinfo-devlibncurses5-devに置き換わることに注意してください。

apt-cache show libtinfo-dev 

Package: libtinfo-dev 
Source: ncurses 
Version: 5.9-4 
Installed-Size: 279 
Maintainer: Craig Small <[email protected]> 
Architecture: i386 
Replaces: libncurses5-dev (<< 5.9-3) 
Depends: libtinfo5 (= 5.9-4) 

python 2.7がこのようなcursesの特定のバージョンで開発されることは期待できません。実際はそうではありません。あなたは依存関係を満足することなく、パッケージをビルドしようとした場合しかし、あなたは

debuild -uc -us 

dpkg-checkbuilddeps: Unmet build dependencies: libtinfo-dev 
dpkg-checkbuilddeps: Build conflicts: libncurses5-dev 
debuild: fatal error at line 1289: 
You do not appear to have all build dependencies properly met. 
You can use mk-build-deps to generate a dummy package which 
Depends on all the required packages, or you can install them 
manually using dpkg or apt using the error messages just above 
this message. 

を取得するので、debian/controlを編集する必要があります。同様にファイルdebian/control.inを編集する必要があります。そうしないと、control ファイルが正しく再生成されてcontrol.inになります。最も簡単な方法は、Build-Conflicts行からlibncurses5-dev を削除し、Build-Depends行からlibtinfo-dev行を削除してから、debuild -uc -us を再度実行してください。あなたは、標準のデフォルトのPythonのDebianのスクイズで2.6のパッケージと一緒にインストールされ、このパッケージを持ってしようとしている場合は、あなた も2.7 python-profiler機能が含まれているため、これらの行がある二行

Conflicts: python-profiler (<= 2.7.1-2) 
Replaces: python-profiler (<= 2.7.1-2) 

を削除する必要があります。 2.7がデフォルトのpythonの場合、python-profilerは必要ありません。 しかし、デフォルト以外のPythonとして2.7をインストールしている場合、その推論は を適用せず、python-profilerはまだ2.6で必要です。

これは正常にビルドされ、次のバイナリパッケージのリストになります。

ls -lah *.deb 

-rw-r--r-- 1 faheem staff 289K Jan 12 02:33 idle-python2.7_2.7.2-8_all.deb 
-rw-r--r-- 1 faheem staff 1.1M Jan 12 02:34 libpython2.7_2.7.2-8_i386.deb 
-rw-r--r-- 1 faheem staff 2.5M Jan 12 02:34 python2.7_2.7.2-8_i386.deb 
-rw-r--r-- 1 faheem staff 12M Jan 12 02:34 python2.7-dbg_2.7.2-8_i386.deb 
-rw-r--r-- 1 faheem staff 4.9M Jan 12 02:34 python2.7-dev_2.7.2-8_i386.deb 
-rw-r--r-- 1 faheem staff 6.0M Jan 12 02:33 python2.7-doc_2.7.2-8_all.deb 
-rw-r--r-- 1 faheem staff 692K Jan 12 02:33 python2.7-examples_2.7.2-8_all.deb 
-rw-r--r-- 1 faheem staff 1.7M Jan 12 02:34 python2.7-minimal_2.7.2-8_i386.deb 

最後に、1は、それらがすべて一度にインストールされている場合、依存関係を満たすについて少し困難な場合がたまに

dpkg -i python2.7-minimal_2.7.2-8_i386.deb python2.7_2.7.2-8_i386.deb python2.7-dev_2.7.2-8_i386.deb libpython2.7_2.7.2-8_i386.deb 

dpkgでバイナリパッケージをインストールすることができますので、あなたは後で場合apt-get -f installを実行する必要があります依存関係エラーが表示されたり、パッケージを小規模なグループにインストールすることができます。

+0

このpython-2.7-squeezeポートをパッケージ化しましたか? – qMax

+0

@qMax:これらのコメントに基づいてパッケージを構築しました。しかし私はどこにでも公開していません。 –

+0

2.7.1-8で十分であれば簡単です。 "deb-src [... snapshot.debian.org ...](http://snapshot.debian.org/archive/debian/20110520T212730Z/)のテストメイン"から入手してください。apt-get build-dep python2。 6、apt-get libexpat1 libexpat-devをインストールします。そして[pbuild](https://wiki.ubuntu.com/PbuilderHowto)それはそのまま圧縮します。 – alexei

3

のUbuntu 12.04

依存関係をインストールします。

$ sudo apt-get install python-software-properties 

はレポを追加します。

$ sudo add-apt-repository ppa:fkrull/deadsnakes 

更新レポインデックス:

$ sudo apt-get update 

は、Python 3.3をインストールします。

$ sudo apt-get install python3.3 

のUbuntu 12.04>より

依存関係をインストール:

$ sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev 

ダウンロードとpythonのコンパイル:

$ wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2 

$ tar jxf ./Python-3.3.0.tar.bz2 

$ cd ./Python-3.3.0 

$ ./configure --prefix=/opt/python3.3 

$ make && sudo make install 

シンボリックリンクを作成することにより、PYコマンドをインストールするには、いくつかの素敵なタッチを:

ありがとうございます。