【High Sierra】初めてのOS入れ替え&Pythonの動作環境を作る(pyenvとかできなかったけど)

OSが勝手に入れ替わる

Windowsしか使ってこなかった人間にとってMacの勝手にアップロードしたらOSが入れ替わることはかなり驚きです。

先週UQ WiMaxを購入してサクッとでもないけど、無事OS入れ替え終了。

まぁアップデートのタイミングとしたらまだ通知があったわけではなくなく、9月末にプレスリリースされてたからってことだけですが。

1年ちょっと使ってたらさすがに容量が足りなくなって、何を削除していいのかわからない状況になって、これはフォーマットするしかないってことになったわけですが。

www.around50th-woman.me

やりたいことをするために

去年はCordovaでAngularJSでって感じの環境を作ってた感じがする。

もうほとんど忘れてるけど。

で、今年は・・・「Python」しよう。

ま、Python自体は去年からUdemyでお勉強してたりするけど、自分のMacに環境はない状態だったので、環境を作りましょう!ってことになりました。

まぁ空っぽのパソコンの状況ですからね。

まず・・・

「Homebrew」をインストールするらしい。

Homebrewをインストールする

Homebrewって何なの?な感じですが、こちらはさくっと終わります。

Homebrew公式ページ

こちらのコマンドをターミナルにコピペして実行したら終わります。

Homebrew は、Apple が用意していないあなたの必要なものをインストールします。

ってことらしい。 なので、まずこれが必要ってことなのでしょうね。

時間があったら(頭の余裕があったら)こちらのドキュメントも読んでおかなきゃか?

パスワードの入力があるので放置はできません。

入ったら

$brew doctor
Your system is ready to brew.

これでOKらしい。

更新の場合

$brew update
Already up-to-date.

続いて・・・環境として「pyenv」を入れようってことになったわけだ。

pyenvをインストールする

なぜPythonを直接入れるわけじゃないのかわからないのですが(結局直接になりますが)まず「pyenv」を入れるといいらしい。(使わないと良さはわからないわけで)

brew install pyenv

入ったらバージョンの確認をしておこう!

pyenv --version

ヘルプもあります。

pyenv --help

ここでやっと準備OKってことになるらしいのですが、Pythonにはバージョンがいっぱい。

インストールできるPythonのバージョンを確認しましょう。

pyenv install --list

これでもか!って感じで羅列されます。

今、インストールできる最新バージョンは「3.6.3」ってことらしいので

pyenv install 3.6.3

しかーし!

ここですごい問題発生

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

ライブラリがないらしい。

そんなこと知らないわ。

で、

Common build problems · pyenv/pyenv Wiki · GitHub

こちらで補完。

brew install readline xz

  

注意:Pythonのコンパイル時にlibssl-devが必要です。libssl-devをインストールすると、実際にはzlib1g-devがインストールされ、Pythonのバージョンをアンインストールして再インストールします(libssl-devをインストールする前にインストールされます)。 Redhatとその派生物のパッケージ名はopenssl-develです。 by Google翻訳まま

ってことらしい。

仕切り直し。

その前にPythonのインストール失敗したことを確認。

pyenv uninstall 3.6.3 pyenv: version `3.6.3' not installed

インストールされてたらアンインストールされるわけで。

さ、再度Go!

pyenv install 3.6.3

でも、まだ出る!

Installing Python-3.6.3...
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

あれ?駄目らしい。。。

これは・・・HighSierraだかららしい。。。

やる方法はあるみたいだけど・・・面倒くさいということになって諦めました。

というか、きっとそのうちOSのアップデートかなんかで解消する問題だろうってことで。

(詳しい人じゃないだし)

Pythonインストールする

で、pyenvはいいのか?って感じですが、Pythonのインストールを普通にする。

brew install python3

Pythonのバージョン確認

python3 Python 3.6.3 (default, Oct 4 2017, 06:09:38) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin Type "help", "copyright", "credits" or "license" for more information.

これでとりあえずpythonは入れられました。

Djangoのインストールの1

なぜDjangoかってことです。(素人はさ、まだその辺がわかってません)

  • Pythonで作られたフルスタック・フレームワークであるということ

わかったようなわからないような・・・ま、入れてみましょう。

  • 学習コストが低い

素敵!重要ね。

ってことで、インストールです。

ここでpythonの仮想環境を有効にする。

Python3.3以降から追加されている標準モジュールのvenvを使います。

python3 -m venv django-tutorial

インストールしたら作ったディレクトリに移動します。

cd django-tutorial

source bin/activate (django-tutorial) babanoMacBook-puro:django-tutorial baba$

こんな感じになります。

終了するときには

ctrl + D

(django-tutorial) babanoMacBook-puro:django-tutorial baba$ logout Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.
[プロセスが完了しました]

ありゃ、プロセスごと完了かい!!

ってことでした。

pipのアップグレード

pipとは

Pythonのパッケージ管理システム。 ってことでとりあえずアップグレードしておきます。

pip install --upgrade pip Requirement already up-to-date: pip in ./lib/python3.6/site-packages

Djangoのインストールの2

ここでやっとDjangoのインストールになります。

長いわ。

今、Macのシステムが壊れてもう一度って言われたらできるのか?

まずPythonの動作確認から

Python

>>>import django
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'django'

なんかまたエラーですが。

何かを間違えたようです。

>>>pip install Django
(django-tutorial) babanoMacBook-puro:django-tutorial baba$ pip install Django
Collecting Django
  Downloading Django-1.11.6-py2.py3-none-any.whl (6.9MB)
    100% |████████████████████████████████| 7.0MB 122kB/s 
Collecting pytz (from Django)
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |████████████████████████████████| 491kB 912kB/s 
Installing collected packages: pytz, Django
Successfully installed Django-1.11.6 pytz-2017.2

やっと成功した様子。

動作確認

python

>>>import django
>>> print(django.get_version())
1.11.6

ってことでやっと完了のようです。(たぶん・・・)

はぁ〜ここまででぐったり。

でも、まだ入り口を作っただけです。