http://python.org/download/ からダウンロードしたUbuntuに最新のPython tarballをインストールします。
これは正しいインストール方法ですか?
./configure
make
make install
そうでない場合、どのようにすればよいですか?
まず、いくつかの依存関係をインストールします。
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
次に、次のコマンドを使用してダウンロードします。
version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz
抽出してディレクトリに移動します。
tar -xvf Python-$version.tgz
cd Python-$version
次に、必要に応じてアンインストールしやすくするために、代わりにcheckinstall
を使用して、先ほど試したコマンドを使用してインストールします。
./configure
make
Sudo checkinstall
version
を必要なバージョンに変更します(version=2.7.1
またはversion=3.6.0
など)。
本当に自分でコンパイルしたいという希望がない限り、 DeadSnakes PPA を使用して、デフォルトでは含まれていないPythonのバージョンをインストールすることをお勧めします。
Sudo add-apt-repository ppa:deadsnakes/ppa
Sudo apt-get update
Sudo apt-get install python2.7
python2.4
やpython3.6
などの他のバージョンも利用できます。
最新のUbuntuリリースのためにこれを文書化し続けます1 :Ubuntu 16.04.1サーバーの場合、デフォルトのPythonはバージョン3.5で、Python 2.7はデフォルトでnotがインストールされます。新規インストールの場合(python
実行可能ファイルさえないことに注意してください):
$ type python3 python2 python
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found
$ python3 --version
Python 3.5.2
$ python --version
The program 'python' can be found in the following packages:
* python-minimal
* python3
Try: Sudo apt install <selected package>
注:続行する前に、Sudo apt-get update
、Sudo apt-get upgrade
、およびSudo apt-get dist-upgrade
(これらのコマンドが実際に実行していることに正確に注意してください。ここにインストールします。)
python 2.7のインストールは次のように簡単です。
$ Sudo apt-get install python2.7
python 2.7のインストールの初期出力は次のとおりです。
$ Sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...
python 2.7をインストールした後、
$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found
しかし、まだ問題があります。pip
を介してPyPIモジュールをまだインストールできないためです。たとえば、jupyterノートブック、または最新のscipyまたはnumpy(など)が必要な場合は、pip
その後pip install
それら、そして引き続きapt-get
を使用して、必要なsystem依存関係(graphvizやコアシステムライブラリなど)をインストールします。
$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found
$ python3 -m pip --version
/usr/bin/python3: No module named pip
したがって、pipをインストールするには、Sudo apt-get install python-pip
と同じくらい簡単です。
$ Sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package
Python 2.7 pip
にはpython-pip
と、Python 3 pip
にはpython3-pip
の両方が必要です。 apt-get
を介したインストールでは、必要な依存関係が必ずインストールされます。たとえば、pip2をインストールするための出力は次のとおりです。
$ Sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-Perl
libalgorithm-diff-xs-Perl libalgorithm-merge-Perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-Perl libexpat1-dev libfakeroot libfile-fcntllock-Perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
python-tk python-setuptools-doc
The following NEW packages will be installed:
binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-Perl
libalgorithm-diff-xs-Perl libalgorithm-merge-Perl libasan2 libatomic1 libc-dev-bin libc6-dev
libcc1-0 libcilkrts5 libdpkg-Perl libexpat1-dev libfakeroot libfile-fcntllock-Perl libgcc-5-dev
libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...
この結果、興味深いことが起こります。「標準」(および推奨されるPEP)python2
およびpython3
(これらは単なるpython 2.7およびpython 3.5):
$ type python3 python2 python python2.7 python3.5
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
Sudo apt-get install python3-pip
も必要です。インストールする前に、次のものがあります。
$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
/usr/bin/python3: No module named pip
pip3
をインストールした後、
$ Sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
python-setuptools-doc
The following NEW packages will be installed:
libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...etc...
結果のバージョン:
$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3
$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
$ python2 -m pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ python3 -m pip --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
最後に、お気に入りのpython PyPIモジュールすべてのインストールを開始する前に、最後に1つ:おそらくpip自体をアップグレードする必要があります(pip2とpip3の両方を別々に。また、pip
はpython
実行可能ファイルまたはpip
実行可能ファイルを介して呼び出され、実際のアップグレードは/usr/lib
)に保存されます。
$ Sudo -H python2 -m pip install --upgrade pip
...
$ Sudo -H python3 -m pip install --upgrade pip
...
スタンドアロンpip
またはpython
内にバンドルされたバージョン(python -m pip {command}
経由)のいずれかを実行できるようになりました。
[1] 歴史的要約:古いUbuntuにはPython 2.6しかなかったため、Python 2.7+をインストールするためのさまざまな方法がすべてありました。後で、Python 2.7がパブリックリポジトリに追加された後、最新のPython 2.7をインストールするという同じ課題がありましたが、これは(あまりにも)頻繁に必要でした。今日の状況はずっと良く/簡単です:現在公開されているリポジトリにある現在のPython 2.7&3.5(基本的に2つのPythonプラットフォームバージョン)は非常に安定しており、そのため、実際には、最新のpythonではなく、最新のpython modulesのインストールについてのみ心配する必要があります。そのため、Python「最新バージョンの問題」が部分的に OSリポジトリからapt
に移動し、PyPI&pip
に移動しました。
12.04
Achu's answer をフォローしている場合、libread5-dev
という用語はlibreadline-gplv2-dev
に変更する必要があります。したがって、完全なコマンドは次のようになります。
Sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
pyenv からダウンロードしてインストールすることもできます
#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
#Install Python
pyenv install 2.7.8
pyenv global 2.7.8
pyenv install 3.4.5
pyenv global 3.4.5
ほとんどが この回答 のミラーであり、イントロが調整されています
pyenv をお勧めします。ヘッダーの依存関係のインストールとは別にビルドプロセスを自動化します(以下を参照)。 pyenv install 3.6.0
と言うだけで、新しいバージョン(または古いバージョン)のPythonをビルドしてインストールできます。すべてがユーザーとして実行されるため、Ubuntu自体で使用される Pythonを台無しにする を心配する必要はありません。
一部のapt-repoベースのオプション(例:deadsnakes)とは対照的に、他の誰かがパッケージ化するのを待つ必要がないため、pyenv update
の後のリリースと同じ日に機能します。 pyenv install --list
でインストールできるすべてのバージョンを見る
CPythonのビルドに必要なツールとヘッダーをインストールします(PyPyやJythonなどのエキゾチックなPythonには他の依存関係がある場合があります)。 Gitはpyenvで使用され、さらにソースブランチのビルド/インストールも可能にするため、現在3.8であれば何でもインストールできます。つまり、GitHubから新しくCPythonのマスターブランチをインストールできます。
Sudo apt-get install -y git
Sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
libffi-dev libsqlite3-dev tk-dev
# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
Sudo apt-get install -y libpng-dev libfreetype6-dev
インストーラースクリプトを実行します(pyenvと、元の作者が作成した非常に便利なpyenvプラグインをインストールします。詳細は here を参照してください)
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
~/.profile
または~/.bashrc
にinit行を追加します(インストールスクリプトの最後に記載されています)。
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
シェルを再起動する(閉じる&開く、またはexec $Shell
)か、プロファイルスクリプトを再読み込みします。 (例:source ~/.bashrc
)
できた!
システムに触れないようにするにはPython(一般的に悪い考えです。OSレベルのサービスは特定のライブラリバージョンなどに依存している可能性があります)独自の環境を作るのは簡単です!さらに良いのは、Sudo
なし、またはpip
インストールなし!
お好みのPythonバージョンをインストールします(これによりソースがダウンロードされ、ユーザー用にビルドされます。入力は不要です)
pyenv install 3.6.0
必要に応じて後で他のユーザーを作成できるように、virtualenvにします
pyenv virtualenv 3.6.0 general
(ユーザーに対して)グローバルにアクティブにします
pyenv global general
Python/pipなどでやりたいことをやりましょう。それはあなた次第です。
後でライブラリをクリーンアップする場合は、virtualenv(pyenv uninstall general
)を削除するか、新しいものを作成できます(pyenv virtualenv 3.6.0 other_proj
)。環境をディレクトリごとにアクティブにすることもできます:pyenv local other_proj
は、.python-version
ファイルを現在のフォルダーにドロップし、Pythonまたはpip-installedPythonユーティリティをその中または下から呼び出すたびに、それらはpyenvによってシムされます。
bash: pyenv: command not found
、fish: Unknown command 'pyenv'
$PATH
を確認してください。.pyenv/bin
のようなもので終わるエントリが1つあるはずです。不足している場合は、上記のpyenvのインストールで#3および#4(シェルを再起動)を実行したことを確認してください。pyenv: no such command 'virtualenv'
pyenv commands
で表示されるかどうかを確認してください。