web-dev-qa-db-ja.com

Python 2.7

私はPythonが初めてで、Linuxマシン(Ubuntu 10.10)で作業しています。python 2.6ですが、2.7を使用したい機能があるので、2.7をインストールせずに、デフォルトのPythonに設定することをお勧めします。

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

72
jimdolan

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

Python 3.2 のインストールにも使用しました。

108
oylenshpeegul

私は最近、Debian squeezeにPython 2.7をバックポートしました。Ubuntu10.10はDebian squeezeよりも新しいので、squeezeで実行できる場合は、Ubuntuでも実行できます。 Ubuntu 10.10システム。セットアップしたら、テストして、この回答を更新するので、代わりにDebianで行ったことの簡単なスケッチを示します。

まず、一般的かつ明白なコメントですが、見落とされがちなものです。リストされているDebianパッケージのビルドの依存関係をあまり真剣に考えるべきではありません。それらは必要以上に具体的です。たとえば、Pythonのようなソフトウェアは、ポータブルで幅広いシステム上で実行されるように設計されており、非常に特定のバージョンのソフトウェアに依存してビルドされることはほとんどありません。実行時の依存関係も調整できますが、これには注意が必要です。ただし、実行時の依存関係は、ほとんどの場合、このシステム上に既に存在するソフトウェアに基づいて動的に生成されるため、通常は大きな問題ではありません。

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

取得するテストバージョンの選択

apt-get source python2.7=2.7.2-8

debian/controlを見ると、次のビルド依存関係行があります。

ビルド依存:debhelper(> = 5)、quilt、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]、ロケール[!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 Build-Conflicts:tcl8.3 -dev、tk8.3-dev、tcl8.4-dev、tk8.4-dev、python2.7-xml、python-xml、autoconf2.13、libncurses5-dev

このほとんどは、squeezeで簡単に満たされます。便利なユーティリティ 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以外のすべてがsqu​​eezeで利用できることがわかります。 debhelperおよびpython-sphinxのsqueezeバックポートバージョンがありますが、ビルド要件を満たすバージョンのdebian squeezeでも使用できます。

Libncurses5-devがインストールされていることにも注意してください

apt-show-versions libncurses5-dev

libncurses5-dev/squeeze uptodate 5.7+20100313-5

これらのパッケージは両方とも、ソースパッケージcurses 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から誤って再生成されます。最も簡単なことは、libncurses5-dev行からBuild-Conflictsを削除し、libtinfo-dev行からBuild-Dependsを削除してから、debuild -uc -usを再度実行することです。 Debian squeezeの標準のデフォルトPython 2.6パッケージと一緒にこのパッケージをインストールする場合は、2行も削除する必要があります

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

2.7にはpython-profiler機能が含まれているため、これらの行があります。 2.7がデフォルトのPythonである場合、python-profilerは不要になりました。ただし、2.7をデフォルト以外のPythonとしてインストールする場合、その理由は当てはまらず、2.6ではpython-profilerが引き続き必要です。

これで正常にビルドされ、次のバイナリパッケージのリストが表示されます。

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

最後に、次のコマンドでバイナリパッケージをインストールできます。

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を実行するか、パッケージを小さなグループにインストールする必要があります。

10
Faheem Mitha

必要なものがargparseのみである場合(コメントの1つでそれを見た!)、次のようにできます。

pip install argparse

これは正確な質問に対する正確な答えではありません:-)、実際にいくつかの機能だけが欠けている場合、実際には多くの2.7の機能は独立したプロジェクトおよび/またはいくつかの互換性パッケージにあります。

2.7 novelties のリストは明らかに長いですが、他の新機能のほとんどはおそらく大きなミスではなく、代わりに複数のpythonボックスにインストールします。それ以外の場合はpythonbrewを使用します:-)

5
Stefano

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コマンドをインストールするためのいくつかの素敵なタッチ:

$ mkdir ~/bin
$ ln -s /opt/python3.3/bin/python ~/bin/py
3
Rushdi

virtualenv を使用して、別個のPython環境を作成できます。ただ新しいだけですが、Python 2.7に必要なものは何ですか?

1
Tom

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

1
user647772

別のオプションは、自分でコンパイルしたくない場合はActivePythonをインストールすることです。 binary package manager も含まれています。

1