私はPythonには新しく、Linuxマシン(Ubuntu 10.10)で作業しています。それはPython 2.6を実行していますが、使用したい機能があるので2.7を実行したいと思います。私は2.7をインストールせず、デフォルトのPythonとして設定するよう促されています。Python 2.7 on Ubuntu
私の質問は、2.7をインストールして、それを2.6と並べて実行するにはどうすればいいですか?
私はPythonには新しく、Linuxマシン(Ubuntu 10.10)で作業しています。それはPython 2.6を実行していますが、使用したい機能があるので2.7を実行したいと思います。私は2.7をインストールせず、デフォルトのPythonとして設定するよう促されています。Python 2.7 on Ubuntu
私の質問は、2.7をインストールして、それを2.6と並べて実行するにはどうすればいいですか?
http://www.python.org/download/releases/2.7.1/からPython 2.7をダウンロードしてビルドするだけです。
私は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
行は何ですか? $ HOME/.pythonbrew/etc/bashrcは何ですか? – bharal
また、pythonbrewを常に使用可能に設定しないでください。それは私が... um、何かをする必要があるという意味ではありませんか?私がログアウトしてもう一度ログインすると、私のpythonbrewは忘れられてしまいます。私は上の行はそれと関係があると思います...しかし何ですか? – bharal
そうです、その行は、そのファイルのすべてのコマンドを実行することによってpythonbrewを設定します。 .bashrcファイルにその行を追加するだけで毎回発生します。 – oylenshpeegul
virtualenvを使用すると、別個のPython環境を作成できます。ちょうどニュースですが、Python 2.7には何が必要なのですか?
自分でコンパイルしたくない場合は、ActivePythonをインストールすることもできます。それにはbinary package managerも含まれています。まあ
あなたが必要とする唯一のものはargparseであれば(コメントの一つであることを見た!)あなただけ行うことができます:
pip install argparse
これは:-)正確な質問に正確に答えはありませんが、
2.7 noveltiesのリストは確かに長いですが、他の新機能のほとんどは、おそらく、大きなミスはない、と引き換えに、あなたと周りの混乱をしないでmemoryviewを交換することができるはずですあなたの箱に複数のpythonがインストールされています。そうでなければpythonbrew :-)に行く
私は最近、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
除くすべてがスクイズで利用可能であることがわかります。私はdebhelper
とpython-sphinx
のスクイーズバックポートバージョンを持っていますが、ビルド要件を満たすバージョンのdebian squeezeでも利用できます。
私はのlibncurses5-devのは、これらのパッケージの両方がソースパッケージcurses 5.7+20100313-5
に対応
apt-show-versions libncurses5-dev
libncurses5-dev/squeeze uptodate 5.7+20100313-5
がインストールされていることも確認します。実際に
libtinfo-dev
が
libncurses5-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
を実行する必要があります依存関係エラーが表示されたり、パッケージを小規模なグループにインストールすることができます。
このpython-2.7-squeezeポートをパッケージ化しましたか? – qMax
@qMax:これらのコメントに基づいてパッケージを構築しました。しかし私はどこにでも公開していません。 –
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
の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コマンドをインストールするには、いくつかの素敵なタッチを:
ありがとうございます。
ありがとうございました。私はその部分を持っていますが、私の質問は、2つのバージョン間を行き来する方法についてです。 Rubyでは、複数のRubyバージョンを管理するためにRVMを使用します。 Pythonには同等のものがありますか、それとも必要ありませんか? – jimdolan
しかし、 "make install"の代わりに "make altinstall"を使用してください。 "make install"は2.7をデフォルトのバージョンに設定し、あなたはそれを望んでいません。 "make altinstall"は、システムのPythonだけを残し、 "python2.7"を使用して呼び出す必要があります。 – casevh
はい、altinstallを実行する方法です。 – codeape