Python 3.6のインストール方法は?


107

この投稿の時点で3.6である最新のPythonをインストールしたいと思います。ただし、リポジトリはPython 3.4.2が最新バージョンであると言っています。

私はもう試した:

$ sudo apt-get update
$ sudo apt-get install python3

python3 is already the newest version.

$ python -V

Python 3.4.2

WindowsワークステーションでPython 3.6にアップグレードするには、exeをダウンロードし、[次へ]を数回クリックするだけで完了しました。Debian JessieにPython 3.6をインストールするための適切で公式に受け入れられている手順は何ですか?


6
デフォルトのDebianリポジトリには、特定のDebianバージョン用に特別にコンパイルされたソフトウェアパッケージが含まれています。セキュリティアップデート(セキュリティホールの修正に必要な最小限の変更が望ましい)を除き、ほとんどのソフトウェアの新しいバージョンは、潜在的な不安定性を回避するために次のメジャーリリースまで利用できない場合があります。
phk 16

@phkその場合、pipに似た動作、つまりバージョンが指定されていない場合のデフォルトの3.4.2を採用し、ユーザーが明示的にフラグ付きの3.6を要求できるようにするのは賢明ではないでしょうか?ちょうどアイデア:)
dvtan

1
これは、サポートされているすべてのDebianバージョンについて、Debianの人々がこれらすべてのPythonバージョンを維持する必要があることを意味します。確かに、それは自動化できますが、それでもまだたくさんあります。また、新しいバージョンが必要なパワーユーザーは、カスタムリポジトリを使用することもできます。時々、ソフトウェア作成者自身がDebianや他の一般的なLinuxディストリビューション(Oracle VirtualBoxの場合など)向けにそれらを保守しています
phk 16

1
Python 3.6(とはいえrc1)は、実験的なDebianにたった今到着しました。おそらく少し調整して、ジェシーにバックポートすることはおそらく可能です。
ファヒムミタ

更新。これでDebian安定版(jessie)でのビルドが正常に完了しました。ただし、それは正常にインストールされ、問題を引き起こさないという意味ではありません。妥当な次のステップは、安定版のテストVMでテストすることです。誰も気にしますか?
ファヒームミタ

回答:


66

DebianのリポジトリにはPython 3.6はありませんが、テストには含まれています。

$ sudo nano /etc/apt/sources.list
# add
deb http://ftp.de.debian.org/debian testing main
$ echo 'APT::Default-Release "stable";' | sudo tee -a /etc/apt/apt.conf.d/00local
$ sudo apt-get update
$ sudo apt-get -t testing install python3.6
$ python3.6 -V

あなたが求めた:

適切で公式に受け入れられた手順

ただし、テストリポジトリを使用するため、これは公式のソリューションではないことを指摘する必要があります。


62
警告:これにより、現在実行中のDebianのリリース(おそらく「安定」)と「不安定」、「実験」のハイブリッドにシステムがアップグレードされます。これは、experimentalからいくつかのパッケージをunstableおよびcherry-pickingにdist-upgradingするよりもはるかに悪いでしょう(または、より良いのは、バックポートおよび/またはunstableおよび/またはexperimentalから安定したcherry-pickingのままです)。これから戻すことはほぼ不可能です。 あなたがDebianとDebianのパッケージと多くの経験を持っていない限りお勧めしません
CAS

8
aptのデフォルトリリースを安定版に設定するように回答を編集しました。および削除狂気「apt-getのアップグレード」(アップグレードされ、すべてを別のパッケージの削除を引き起こすものを除き、不安定または実験で利用可能な最新バージョンに)。これにより、この手順の危険性ははるかに低くなりますが、それでも安全ではありません。まだ初心者にはお勧めできません。「実験的」は偶然の使用ではなく、「不安定」であっても物事を衝突させたり破壊したりする可能性のある、奇妙でテストされていない、おそらく壊れたものです。また、大きなマルチパッケージアップグレードのステージングエリアとしても使用されます。
cas

1
python 3.6.2として編集された回答は(現在)testingリポジトリにあり、一般ユーザーにとって安全です。
m4p85r

4
これを試してはいけない-それは元に戻すためにあなたの年齢を取る
user3728501

1
2017年8月(または12月)に提案されているように、これはまだリスクが高いですか?@casが編集してコメントを付けた後、それはもう明確ではありません。誰かフォローアップできますか?
ブライアンピーターソン

154

Python-3.6次のようにDebian 8にインストールできます。

wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --enable-optimizations --enable-shared
make -j8
sudo make altinstall
python3.6

公式ウェブサイトmake altinstallに従って使用することをお勧めします。

組み込みたい場合は、構成呼び出しpipに追加--with-ensurepip=installする必要があります。詳細については、を参照してください./configure --help

警告:make installPythonバイナリを上書きまたはマスカレードできます。make altinstallしたがってmake install、のみをインストールするため、代わりにをお勧めしますexec_prefix/bin/pythonversion

いくつかの既知の問題を回避するために、いくつかのパッケージをインストールする必要があります。参照:一般的なビルドの問題(更新)

Ubuntu / Debian:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev

libreadline-devの代替:

sudo apt install libedit-dev

Fedora / CentOS / RHEL(aws ec2):

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel

openssl-develの代替:

sudo yum install compat-openssl10-devel --allowerasing

更新

最新版python-x.y.z.tar.gzこちらからダウンロードできます。

デフォルトのpythonバージョンを設定し、それらを簡単に切り替えるにはupdate-alternatives、複数のpythonバージョンで更新する必要があります。

python3.7debian stretch をインストールしたとします。コマンドwhereis pythonを使用してバイナリ(*/bin/python)を見つけます。例えば:

/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5

Pythonバージョンを追加します。

update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30

優先順位は、今、あなたのデフォルトのpython、ある意志の印刷:python3.750python -V

Python 3.7.0b2

それらを切り替えるには、次を使用します。

update-alternatives --config python

サンプル出力:

There are 3 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                      Priority   Status
------------------------------------------------------------
* 0            /usr/local/bin/python3.7   50        auto mode
  1            /usr/bin/python2.7         40        manual mode
  2            /usr/bin/python3.5         30        manual mode
  3            /usr/local/bin/python3.7   50        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

5
debianの人はお勧めしませんcheckinstallか?そうでなければ、/usr/localまたはにインストールするのが賢明でしょう/opt
イワンアニシュチュク

3
./configure --helpPython 3.6によると、/usr/localデフォルトでインストールされます。
マーカスシュトラウス

2
この答えに問題があります(SSLモジュールが利用できない、zlibがないなど)?参照:stackoverflow.com/a/41601137/972128
kkurian

11
免責事項:Pi zeroなどの低電力デバイスでは20時間以上かかります。
アントワーヌリゼ

2
バージョン3.7がリリースされました
ティモ

32

公式の推奨事項は、「実際には新しいソフトウェアは必要ありません」です

Shiny New Stuff Syndromeに悩まないでください-DontBreakDebian | Debian Wiki

そのページのアドバイスのほとんどは、システム全体でソフトウェアを利用できるようにする場合の対処方法を対象としていますが、この場合は必要ないと思います。

Pythonソースをフェッチし、3.6インタープリターをビルドして--prefix、それが終了する場所を制御virtualenvし、--pythonオプションとともに使用すると、プロジェクトの外部に影響を与えることなくpython 3.6を使用できます。

プロセスは次のようになります。

$ cd ~
$ mkdir pythonroot
$ mkdir opt
$ mkdir app
$ cd opt
$ wget <python tarball>
$ tar -xvf <python tarball>
$ cd python-3.6
$ ./configure --prefix="$HOME"/pythonroot
$ make
$ make install
$ cd ~
$ cd app
$ virtualenv venv --python ~/pythonroot/bin/python
$ . venv/bin/activate
[venv]$ which python
/home/<user>/pythonroot/bin/python

これを行う場合は、Python スクリプトの--enable-optimizationsフラグを検討することをお勧めします。これにより、configureプロファイルに基づく最適化などの機能が有効になります。ビルド時間は増加しますが、一部のベンチマークによると、インタープリターが10%程度高速になります。


5
これは、「実用性が純度を上回る」というPythonの一般的なルールに従います。私は/ opt / python-xyzのソースパッケージからpythonをインストールしてから、独自のvirtualenvからアプリケーションを実行する傾向があります。
-zgoda

1
重要な注意:このようなことをしようとする場合:Pythonプロセスを実行するユーザーがvirtualenvを変更できないことを確認してください
Gregory Nisbet

1
私の意見では、これが最良の答えです。
-BringBackCommodore64

このアドバイスをありがとう。過去に、システム全体のアドオンでdebianのインストールを中断しました。
凍結

私のインストールで[venv]$ which pythonは、私に/home/<user>/pythonroot/bin/pythonではなく、/home/<user>/app/venv/bin/python3代わりに...なぜですか?
凍結

12

あなたは見ていたいかもしれませんpyenvhttps://github.com/yyuu/pyenvをpyenvAmaral Lab のチュートリアルから引用するには:

以前はPythonbrewと呼ばれていたpyenvを使用すると、グローバルPythonバージョンの変更、複数のPythonバージョンのインストール、ディレクトリ(プロジェクト)固有のPythonバージョンの設定、yes仮想python環境の作成/管理( "virtualenvs")ができます。これはすべて、Pythonに依存せずに* NIXスタイルのマシン(LinuxおよびOS X)で行われ、ユーザーレベルで動作します。sudoコマンドは不要です。


3
このリンクは質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供する方が良いでしょう。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- 口コミより
Archemar

あなたは正しい、答えを変えるだろう。
schaiba

1
彼はまた、重要なコマンドラインも含める
つもりだったと思う...-not2qubit

これはうまく機能しますが、組み込みデバイスを扱う場合を除きます。Pythonのバージョンを「インストール」するには、ソースをダウンロードしてローカルでコンパイルします。それ以外に、pyenvは優れた選択肢であり、さまざまなディレクトリでさまざまなPythonバージョンを実行したり、非常に厄介なPIP問題に対処したりするなど、柔軟性が豊富です。
ブライアンBulkowski

11

私の優先する方法は、AnacondaまたはMinicondaを使用して、Debianにインストールされているpythonとパッケージの最新バージョンを保持することです。

すべてフォルダ内にきちんと保存されているので、必要に応じて後で簡単に削除できます。インストーラーはbashrcへのパスも追加します(別のシェルを使用する場合は自分で追加します)。

pipと、numpyなどのより複雑なパッケージに適したパッケージマネージャーであるcondaが付属しています。Minicondaは最低限のインストールであり、Anacondaは主にデータ分析用に設計された多くのパッケージを含むフルインストールです。

早く:

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

bash add pathを使用していない場合、ライセンスを読んで同意します。 export PATH="/home/$USER/miniconda3/bin:$PATH"

テスト:

$ python --version
Python 3.6.0 :: Continuum Analytics, Inc.

PyPiからインストールします。

# pip install fava

condaからインストールします。

# conda install numpy

削除する場合~/miniconda3は、bashrcのフォルダーとパスを削除します。


ソースからpythonをインストールする際の無限の問題の後、このバージョンは完璧に機能しました!環境管理のためにvirtualenv(wrapper)を使用する場合は、minicondaライブラリディレクトリをに追加する必要があることに注意してくださいLD_LIBRARY_PATH。例:に追加export $LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/miniconda3/lib"します.bashrc
jrast

「インストーラーはbashrcへのパスも追加します」それが私がanacondaを使用しない主な理由です。控えめに言っても、既存のpython環境を静かにマスクすることは健全ではありません。
ミスター宮城

3

DebianにはリポジトリにPython 3.6がありません。Python3の現在のステータスのスナップショットは次のとおりです。

wheezy (oldstable) (python): interactive high-level object-oriented language (default python3 version)
    3.2.3-6: all
jessie (stable) (python): interactive high-level object-oriented language (default python3 version)
    3.4.2-2: amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x
stretch (testing) (python): interactive high-level object-oriented language (default python3 version)
    3.5.1-4: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x
sid (unstable) (python): interactive high-level object-oriented language (default python3 version)
    3.5.1-4: alpha amd64 arm64 armel armhf hppa hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 x32

こちらで確認できます

3.6をソースからインストールするか、ホームディレクトリのインストールにLinuxbrewなどを使用してインストールできます。


3

これとともに

sudo echo "http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list

sudo apt-get update
sudo apt-get install -y python3.6

正常に動作します。

詳細:python3.6をデフォルトとして設定

sudo alias python=/usr/bin/python3.6

たった今 :

python --version
Python 3.6

読むべきですsudo echo "deb http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list

3
この回答は受け入れられた回答と同じで、1年後に来ましたが、正しいコマンドを与えることに失敗します。
To마SE

1

Python 3.6(とはいえrc1)は、実験的なDebianにたった今到着しました。これをDebian安定版(jessie)で正常にビルドできました。以下に貼り付けたビルドの最終手順を参照してください。

ただし、それは正常にインストールされ、問題を引き起こさないという意味ではありません。妥当な次のステップは、安定版のテストVMでテストすることです。誰かが気にしたら、私はそれを試してみることができます-または他の誰かが試してみることができます。

適切なリリースバージョンがまもなくDebian不安定版に到着するはずです。

dh_builddeb -a
dpkg-deb: building package `python3.6' in `../python3.6_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-venv' in `../python3.6-venv_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-stdlib' in `../libpython3.6-stdlib_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-minimal' in `../python3.6-minimal_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-minimal' in `../libpython3.6-minimal_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6' in `../libpython3.6_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-dev' in `../python3.6-dev_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-dev' in `../libpython3.6-dev_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-dbg' in `../python3.6-dbg_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-dbg' in `../libpython3.6-dbg_3.6.0~rc1-1_amd64.deb'.
 dpkg-genchanges  >../python3.6_3.6.0~rc1-1_amd64.changes
dpkg-genchanges: including full source code in upload
 dpkg-source --after-build python3.6-3.6.0~rc1
dpkg-buildpackage: full upload (original source is included)
Now running lintian...
W: python3.6 source: newer-standards-version 3.9.8 (current is 3.9.6)
N: 56 tags overridden (26 errors, 27 warnings, 3 info)
Finished running lintian.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.