46743


wsl上のdebian(stretch)でPython3.7をインストールするにはどうすればいいのでしょうか?  
stretch-backportsを検索してもPython3.5が出てきてしまいます。  
さらに調べてみるとtestingには3.7があるようです。

WSL上のdebianでtestingからpackageを取得するにはどうすればよいのでしょうか?


CC BY-SA 4.0
2018-07-19T14:23:06.987
46731
2018-07-24T09:57:29.953
5246
question
python debian wsl
Windows Subsystem for Linux(wsl)のDebianでPython3.7をインストールする


debianはパッケージのバージョンが古いことが多いです。

今後、各種バージョンのpythonをインストールする予定があるのであれば,
[pyenv](https://github.com/pyenv/pyenv)をインストールして利用すると、各種バージョンのインストールと切替が容易なため便利だと思います。

インストール方法は、以下の記事が参考になると思います。

[Windows10(WSL)で、2018年的Pythonプロジェクト（①pyenv/pipenvの導入）](https://qiita.com/Nimimal/items/72c2e2a6a566d1f5d2a2)

* * *

## pyenvの簡単な使い方

pyenvの使い方は、以下の記事が参考になると思います。

[Pyenvの使い方](https://qiita.com/mogom625/items/b1b673f530a05ec6b423)

以降にも簡単にまとめました。

pyenvをインストールしてしまえば、以下によりインストール可能なバージョンが表示されますので、そのなかから必要なバージョンを決めて、

[code]

    pyenv install -l
    Available versions:
      2.1.3
      2.2.3
      2.3.7
      2.4
      ..略..
    
[/code]

以下により該当バージョン(例: 3.7.0)をソースからインストールできます。

[code]

    pyenv install 3.7.0
    
[/code]

インストールしたpythonを利用するには、以下を実行すれば、ログインしたシェル全体で該当バージョンのpythonを利用できます。

[code]

    pyenv global 3.7.0
    python --version
    Python 3.7.0
    
[/code]

プロジェクト単位にバージョンが異なる時など、特定のディレクトリ内でのみ該当バージョンのptyhonを利用したい場合は、以下を実行します。  
(実行したディレクトリ内に`.python-version`ファイルが作成されバージョンが記録されます。)

[code]

    pyenv install 3.6.4
    pyenv local 3.6.4
    python --version
    Python 3.6.4
    
[/code]

インストールされたpythonのバージョンは以下で確認できます。

[code]

    pyenv versions
      system
      3.6.4
    * 3.7.0
    
[/code]


CC BY-SA 4.0
2018-07-19T15:11:41.447
46734
2018-07-19T15:11:41.447
46731
answer


## 1. testing を使う方法

WSL の Debian でも、通常の Debian と同様の方法で testing
からインストールすることができます。ただし実装の差などの問題から、インストール後に何かしら警告やエラーが出る可能性はあります。

testing からインストールする方法は、Debian Wiki のページ [DebianTesting](http://DebianTesting)
に解説があります。インストール手法だけでなく testing
とは何かから解説がありますので、ご一読ください。また、紹介だけですが日本語での短い解説も[こちら](https://www.debian.or.jp/using/release.html)にあります。

インストール手法だけ抜粋・日本語訳すると、以下のような流れになります ("How to upgrade to Debian (next-stable)
Testing" に書かれていることです)。システムを stable から testing にアップグレードする形です。 **testing から
stable には[やや戻しにくい](https://unix.stackexchange.com/q/117122/211480)のでご注意ください。**

  1. デフォルトでは stable からインストールするようになっているので、まずは stable できちんと `apt update` できるか試す。この際 oldstable ではなく stable にしてください。
  2. ファイル `/etc/apt/sources.list` を編集し、`stable` を `testing` にする。(この際、元の `sources.list` のバックアップを取っておくとやや安心です。)
  3. stable のセキュリティアップデートを示す行をコメントアウトする ( _security.debian.org_ という文字列が含まれる行すべてです)。
  4. `*-backports` や `*-updates` のような、stable のためだけの行をコメントアウトする。
  5. `apt update` や `apt upgrade` 等をしてアップグレードする。

ただしこのやり方は Python に限らずシステム全体を testing 環境に置くことになります。注意してください。

## 2. Python のバージョンマネジャーを使う方法

testing を使うとシステム上の他のパッケージのバージョンにも影響するかもしれません。このため Python 3.7 が欲しいだけなら、Python
のために作られたバージョンマネジャーや仮想環境を使うことをオススメします。

たとえば [tanalab2 さんの回答](https://ja.stackoverflow.com/a/46734/19110)で解説されている
[pyenv](https://github.com/pyenv/pyenv) や、[本家 Stack Overflow
の別質問](https://stackoverflow.com/q/46939562/5989200)で解説されている
[Anaconda](https://www.python.jp/install/anaconda/unix/install.html)
が有名です。[Yasuhiro
さんの回答](https://ja.stackoverflow.com/a/46768/19110)には他の選択肢も書かれています。

## 3. ソースからビルドする方法

また、Python 公式サイトから [Python 3.7
のソースコードをダウンロード](https://www.python.org/downloads/release/python-370/)し、自前でビルドしてインストールする方法を使うことでも、Python
3.7.x をインストールすることができます。


CC BY-SA 4.0
2018-07-19T18:06:03.373
46743
2018-07-24T09:57:29.953
2018-07-24T09:57:29.953
19110
19110
46731
answer


`testing`を使うのは安定性の問題から通常は勧められません。安定版にインストールするのが基本です。

Pythonをインストールする話になると、日本ではまず`pyenv`が出てくるのですが、`pyenv`は、データサイエンスをしたい場合やWebアプリ等のアプリケーションを作りたい場合には向いていません。アプリケーションの開発中はPythonのバージョン等環境を固定するのが一般的なので、環境分離ツールには公式の`venv(virtualenv)`又は最近開発された`pipenv`を利用した方がベターです。パッケージの作成者以外では`pyenv`を使ったらいいというケースはあまりないと思います。

まず、初心者やデータサイエンスをしたい場合は、Anacondaが最適です。データサイエンスの場合、`Anaconda`を使うと楽ができます。パッケージがすべてコンパル済みになっているのでパッケージのインストールに面倒なことがない上にインストールが速いです。また、numpy,
scypyは、インテルのMKLがリンクされたものなので、PyPIのバイナリーパッケージを使うよりかなり高速です。自分の経験では、最近購入したPCでは浮動小数点数のベクトル演算が4倍も違います。Anacondaには、`conda`という環境管理ツールが付属していて、複数のバージョンのPythonを切り替えて使うことができます。なお、Anacondaを使う場合は、PATHを通すと問題が出てくるので、`source
anaconda3/bin/activate`でAnaconaの環境をアクティベイトするようにすると問題なく使えます。

Webアプリ等のアプリケーションを作りたい場合は、公式サイトからソースコードをダウンロードしてきて自分でビルドするのが早いです。unix.stackexchange.com
の[「How to install Python
3.6?」](https://unix.stackexchange.com/questions/332641/how-to-install-
python-3-6)という質問の回答でもソースからインストールする方法が一番多くプラス投票がついています。自分でビルドするといっても以下のコマンドで簡単にインストールできます。

[code]

    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
    tar -xf Python-3.7.0.tar.xz
    cd Python-3.7.0
    ./configure --enable-optimizations
    make -s -j2
    sudo make altinstall
    python3.7
    
[/code]

それらのコマンドを実行する前に、依存関係をインストールしておく必要がありますが、[「How to install Python
3.6?」](https://unix.stackexchange.com/questions/332641/how-to-install-
python-3-6)の回答では次ののようになっています。これは、`pyenv`でインストールする場合も同じで、`pyenv`は結局上のコマンドを自動で実行しているだけの話です。

[code]

    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev   
    sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm 
    sudo apt-get install -y libncurses5-dev  libncursesw5-dev xz-utils tk-dev
    
[/code]

自分の場合は、それに追加して以下のdevパッケージをインストールしています。

[code]

    sudo apt-get install iblzma-dev uuid-dev libffi-dev
    
[/code]


CC BY-SA 4.0
2018-07-20T05:29:56.740
46768
2018-07-20T05:57:49.397
2018-07-20T05:57:49.397
15171
15171
46731
answer