apt-getを使用して別のPythonバージョンをインストールするにはどうすればよいですか?


125

apt-getを使用して異なるバージョンのPythonをインストールするにはどうすればよいですか?

ソースtarボールを使用してインストールできることは明らかですが、ソースからはインストールせず、代わりにパッケージマネージャーを使用することをお勧めします。確かに信頼できるどこかで、参照できる最新のPythonリリース用の.debファイルをビルドします(なぜpython.orgは私を超えていないのですか)。

それらを参照するには何をする必要があり、次のバージョンにアップグレードするときにどのような問題が発生する可能性がありますか?

ソースからビルドする以外に方法がない場合、それぞれを個別に見つけてインストールすることなく、必要なすべての依存関係を提供する(擬似)パッケージをインストールできますか?私が得ないように:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  


あなたはこれまでに取得E: Couldn't find any package by regex 'python3.5'したため、経由でインストールに失敗しましたapt-get install python3.5か?
チャーリーパーカー


ここではいくつかの良い提案:quora.com/...
チャーリー・パーカー

1
@CharlieParker Anacondaをインストールしてみましたか?
M.ベセラ

回答:


169

Felix Krullは、https://launchpad.net/~deadsnakes/+archive/ubuntu/ppaで多くのUbuntuリリース向けに基本的にPythonのすべてのバージョンを提供するPPAを実行します(真剣に、2.3.7ビルドがあります...)。

いつものこと:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

python3.4としてシンボリックリンクされている既存のファイルは上書きされませんpython3

シンボリックリンクを変更しないでください!python3.5では適切に動作しないシステム関数が多数あるようです。

私はこれを試しましたが、その後、ターミナル、ソフトウェアアップデーターを開けませんでした...

cd /usr/bin
sudo rm python3

Wilyへのアップグレードにより、メタパッケージがpython3を指すように適応しpython3.5ます。破損は想定していませんが、この時点で外部リポジトリはもう必要ありません。本当に安全にするために、アップグレードを実行する前にPPAをパージできます。


5
noobが存在するため、シンボリックリンクしないでください!また、シンボリックリンクではないことは、コマンドラインからpython3.5と入力してpython 3.5を実行する必要があることを意味します
Chris Hawkes

4
この3.5で3.4のピップを使用するにはどうすればいいですか?
グルーシャ

2
@ kondra007 pip.pypa.io/en/stable/installingの指示に従い(そこの警告読んでください)、これらの2つのコマンドwget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pyはpython 3.5の有効なpipを提供しましたが、pip3.4はもう機能していません。誰でもよく知っている場合はコメントしてください
ndemou

2
また、python3.5をデフォルトとして設定 ~$ vim ~/.bashrcし、これを追加し alias python=python3.5ます。その後~$source ~/.bashrc
Krishnadas PC

1
ヒント:もしadd-apt-repository: command not found実行し、 apt-get install software-properties-common python-software-propertiesインストールする
ミスリル

35

このYoutubeリンクは、インストールに役立ちました。

手順は次のとおりです。

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Pythonがインストールされているかどうかを確認するには、python3.5elseと入力します。

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5

3
OPは、ソースからコンパイルしたくないと言った
Michael Bates

3
はい、あなたは正しいです。また、ソースからコンパイルすると、今後さらに依存関係の問題が発生する可能性があります。しかし、それは私がそれを解決した方法です。もっと良い方法があれば、絶対に知りたいです。
joydeep bhattacharjee 16

5
./configure --enable-optimizations stackoverflow.com/questions/41405728/…を
warvariuc

1
Pythonは特定のOS向けに作られていないため、@ CharlieParker。どのプラットフォームでも実行できるようになっています。Linuxの場合、これは、各バージョンをコンパイルして、各Linuxディストリビューションのバージョンごとに配布する必要があることを意味します(多くのバージョンがあります)。中古。後者ははるかに実行可能です。
CJStuart

2
また、c / c ++コンパイラが必要ですapt-get install build-essential
bato3

13

次の手順(テスト済み)に従うだけです。

ステップ1 –必要なパッケージをインストールする

Pythonをインストールする前に、次のコマンドを使用して前提条件をインストールします。

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

ステップ2 – Python 3.5.2のダウンロード

python公式サイトから次のコマンドを使用してPythonをダウンロードします。以下に指定されている場所の最新バージョンをダウンロードすることもできます。

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

ダウンロードしたパッケージを解凍します。

sudo tar xzf Python-3.5.2.tgz

ステップ3 – Pythonソースのコンパイル

以下のコマンドセットを使用して、altinstallを使用してシステム上でPythonソースコードをコンパイルします。

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallデフォルトのpythonバイナリファイルの置き換えを防ぐために使用されます/usr/bin/python

ステップ4 – Pythonバージョンの確認

以下のコマンドを使用して、インストールされているpythonの最新バージョンを確認します。

$ python3.5 -V

Python 3.5.2

ソース


2
デフォルトでaltinstallを使用する場合は+1。1つのバージョンだけで生活できる実際のシナリオはあまりありません。Python3がデフォルトのシステムであっても、Pythonを逆にインストールするように強制される場合があります->代わりにPython2またはPython2を追加します。
erm3nda

1
ここで説明するエラーが発生しました-bugs.python.org/issue31652を実行sudo apt-get install libffi-devして解決する必要がありました。
ニシャンチャトゥランガ

またsudo apt-get install liblzma-dev、lzmaサポートを有効にするために追加します。
v.grabovets

6

私が知る限り、少なくともドッカーコンテナーでは、確実にapt-getpython 3を使用できます。

最初に、コンテナを備えたubuntuコンテナに遭遇しました:

docker run -it --rm ubuntu:latest bash

その後、何らかの理由でいくつかのubuntuのものを更新する必要があったので、私は(コンテナ内で):

apt-get update && apt-get install -y build-essential git libjpeg-dev

そして、私は単純にpython3をインストールしましたが、自動的にpython 3.5になったようです:

apt-get install python3
apt-get install python3-pip

そして、pipが機能するかどうかをテストするには、何かをダウンロードできます:

pip3 install tensorflow

私にとってはすべてうまくいくようです。

重要な注意:既にPython 3.4がインストールされている場合、既にインストールされapt-get install python3ていると表示されるため、動作しないようです。私はテンソルフロー(特にgcr.io/tensorflow/tensorflow:latest-devel-py3)のDocker イメージとそのイメージの何か(すでにPython 3.4を持っていると仮定していますが、それは何か他のものかもしれません)から始めていたので、更新することができなかったので、それは私の問題の1つだったようですpython 3.5を取得するためのpython。


クレジット:私は次を尋ねたときにこれを発見しました:https : //stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-docker


注:Anacondaをインストールすることもできます。ドッカーの例では、次のことができます。

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

彼らの公式ウェブサイトから:https : //hub.docker.com/r/continuumio/anaconda3/

このソリューションはpython 3.6をインストールしますが、それを調べれば、望むならpython 3.5を入手できます。

注:とにかくdockerを使用しない限り、おそらく仮想envやconda / anacondaなどの仮想環境を使用する必要があります。人々に思い出させたかっただけです。


1
「ドッカーコンテナー内」は非常に一般的なステートメントです。たとえば、Ubuntuのバージョンなど、コンテナーが基づいているイメージに依存します。さらに、一のUbuntuのバージョン(例えば、14.04)で使用できない3.5または3.6のようなマイナーバージョンが存在することができる
giorgiosironi

2

Ubuntuパッケージにリストされているapt-getを介してインストールできる新しいPythonディストリビューションがいくつかあります

例として、現在次のバージョンが利用可能です。

python2.7

python3.2

python3.4

python3.5

python3.6

可用性は、Ubuntuのリリースによってある程度異なります。たとえば、Xenial、Yakkety、およびZestyで3.5が使用可能で、YakketyおよびZestyで3.6が使用可能ですが、apt-getを使用してそれらを取得できるようになっていない場合は、ユニバースリポジトリを有効にする必要があります。Ubuntuのバージョンの可用性を確認するには、上記のリンクを確認してください。

簡単なピークは、PPAがTrustyに対しても3.6であるため、この回答も有効であることを示しています


Ubuntu Repoで利用可能なPythonバージョン は、最新のPythonバージョンではありません。
yaitloutou

@yaitloutou質問は「最新」ではなく「新しい」と言っています。ぜひ、より良い答えを書いてください。
オタク長老

あなたは正しいですが、指定されていないものよりも比較的新しいので、私はそれを最新のものと解釈しました:)
yaitloutou

@yaitloutouお気軽に、もっと良い答えを書いてください!私はそれが感謝されると確信しています。
オタク長老

ここで活動を始めたばかりで、まだ学んでいます。あなたの答えに私のコメントが目障りだと思う場合は申し訳ありません
yaitloutou

0

apt-getを使用してPythonバージョンをインストールする代わりに、仮想環境を使用することを検討します。

仮想環境を使用する(こちらを参照)こと は、Pythonで開発するための良い習慣です。これらは、システムにインストールされたpythonバージョンからpython環境を分離させます。

さらに、ライブラリのインストール中に(pipなどを使用して)sudoアクセスを取得する必要はありません。


11
仮想環境で使用する前に、必要なバージョンのpythonをインストールする必要があると思います。
-Nzbuu

1
目的のバージョンのpythonを仮想環境にインストールします。仮想環境で「アクティブ化」スクリプトを実行するだけでpython関連のパスを変更します。
devrimbaris

これは実際に私がやりたいことです。@ Nephenteの回答をフォローした後に最初にやったことは、を使用してそれを指すことvirtualenv -pでした。しかし、「ImportError:名前 'HTTPSHandler'をインポートできません」で爆発しました。
マイケルシェパー16年

1
なぜこれがダウン投票されたのですか?通常、仮想環境は正常に機能します。
チャーリーパーカー

どのようにubuntuに仮想envをインストールしますか(提案どおり)、しかしpython 3.5を使用しますか?
チャーリーパーカー

0

Condaは積極的に更新されており、管理されたvenvに複数のPythonバージョンをインストールできます。バイナリ拡張機能のパスの問題は、使用する多くのanaconda管理の依存関係/ pipチェーンで解決された可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.