古いMacを再起動

最近のテレワークの都合で、メインで使っていたmacbook pro 15inch を貸し出すことになり、急遽デスクトップのmacを一台用意することになった。

といっても新たに購入するのではなく、昔つかっていてほったらかしにしていたiMac27inchを復活させることに。

久しぶりに起動してスペックを起動してみる。

問題なく起動できるようなので、OSをクリーンインストールする。

 

再設定してシステムを確認してみると・・・

 

f:id:solvalou:20200519105716p:plain

なんと10年以上前のiMacだった。古いとは思っていたけれど、2009年モデルだったとは。でもプロセッサもメモリも問題なさそうなので、当面使ってみることにする。

 

以下最初の感想:

  • 基本的には問題なく十分つかえる(メモリも16GBあるし、HDDも1TB ある)
  • OSがHigh Sierraまでしかアップグッレードできないのは残念(ダークモードが使えない。。サポートもそのうち切れてしまうだろう。。。)

で、3週間ほど使ってみての感想:

  • 普段つかっているソフトは問題なく動作する
  • 画面がてテカテカしていて若干反射が気になる
  • CPUはそこそこなのに、とても遅くてイラっとすることがある
  • USB-Cが使えないのを不便に感じる時がある

この遅く感じるのは何だろう、とおもって考えていたのだけれど、

おそらくHDDへのアクセスが遅いのが原因ではないかと思うようになってきた。

もう一つはメモリ性能かな?とも思うけれど、それほど多くのソフトを立ち上げなくても印象はかわらないので、あんまり関係ないかもしれない。

 

最近はSSDにすっかり慣れていることもあり、あの速さが当たり前になっていたけれど、結構恩恵をうけていたのかと再認識した。

 

と不満を書いて見たけれど、2009年のモデルが普通に現在使えていること自体がすごいことだと思う。OSさえサポートしてもらえればまだまだあと2−3年はいける気がするので、なんとももったいないことだ。

 

追記:

そこそこ使えているのでしばらくはこれで我慢。そのうち新しいMacBookProかAirを買おうとおもうのだけれど、やっぱりどうしてもmojaveが使いたい。。

f:id:solvalou:20200520104312p:plain

AppleのHPにある「最終対応のオペレーティングシステム」に買いてある通りダメなんだけれど、スペック的には十分いけそうなのでもったいない。。。
 

 

 

 

 

Python環境の再構築@macbook pro <3>

前回までに

  • Anaconda3のアンインストール
  • pyenvの導入とPython3のインストール

まで完了している。

今回は、仮想環境「venv」を導入して、そのなかでtkinterが使えるようになる状態(ゴール)まで。

再度現在の状況の確認:

mbp13:~ solvalou$ pyenv versions
  system
* 3.6.8 (set by /Users/solvalou/.pyenv/version)
mbp13:~ solvalou$

というわけで、現状「python 3.6.8」が使える状況になっている。

ここに、venvを使って仮想環境を構築していく。

今回も前と同じく【2020年版】Pythonインストール・Mac編【長く安全に使える環境構築】を参考にして進めていく。

ホームディレクトリ直下に「python_env」というディレクトリを作成する。

mbp13:~ solvalou$ mkdir -p python_env
mbp13:~ solvalou$ cd python_env/; pwd
/Users/solvalou/python_env

作成したディレクトリに移動して、「python -m venv py368」を実行。

(ここで作成する仮想環境の名前が”py368”とする)

その後activateして終了。

以下の最後の行のように表示されれば成功で、この中でいろいろなパッケージを導入したりして仮想環境を構築していく。

mbp13:~ solvalou$ cd python_env
mbp13:python_env solvalou$ python -m venv py368
mbp13:python_env solvalou$ source py368/bin/activate
(py368) mbp13:python_env solvalou$

ちなみに、この仮想環境から抜けるには、「deactivate」のみでOK。 実際やってみると、

(py368) mbp13:python_env solvalou$ deactivate
mbp13:python_env solvalou$

元に戻っている。

ここまでで一応完成。

ということで、最初の目的にもどって状況が改善されているかどうか確認する。

まず IDLEがPython3になっていることを確認。

f:id:solvalou:20200516215125p:plain

で、実際にtkinterのデモが動くかどうかのチェックをしてみる。

python_lessonsというところに置いてある"tkinter_demo.py”というファイルを実行してみる。

ちゃんとウィンドウが現れて、名前を入力すると、以下の出力となる。

 

f:id:solvalou:20200516215222p:plain

(py368) mbp13:python_lessons solvalou$ python tkinter_demo.py
Hello, solvalou!

というわけで、なんとか目標達成!

まだまだよくわからないことは多いけれど、そして先はまだまだ長いけれど、

これでpythonの勉強を進められる。

Python環境の再構築@macbook pro <2>

前回までのおさらい:

そもそも発端は、

macOS(conda環境)でturtleを使おうとしてもうまくいかない。

具体的には以下のことを行うとすべてmacOSが再起動されてしまうというかなり深刻な状態。

- Tkinterのバージョンを調べる

- turtleモジュールをインポートさせるpythonスクリプトを実行する

- Jupiter notebook環境で上記を実行しても同じ

という状態で、まずはpythonクリーンインストールして、あらたにpythonの環境を再構築にすることにした。

前回は、「Anacondaを(完全に)アンインストールして、デフォルトの状態に戻す」ところまで。

今回は、その後にあたらしくpyenvをインストールしてPython3を導入するところまで。

まずは現状の環境の確認。 

mbp13:~ solvalou$ which python
/usr/bin/python
mbp13:~ solvalou$ python --version
Python 2.7.10

mbp13:~ solvalou$ python
Python 2.7.10 (default, Feb 22 2019, 21:55:15)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

mbp13:~ solvalou$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7/lib/
total 0
lrwxr-xr-x    1 root  wheel      9  7 29  2019 libpython2.7.dylib -> ../Python
drwxr-xr-x    5 root  wheel    160  7 29  2019 pkgconfig
drwxr-xr-x  649 root  wheel  20768  2 23  2019 python2.7

 

デフォルトではPython2.7.10が入っていることがわかる。

ここから、「Pythonインストール・Mac編【バージョン切り替え・アンインストールしやすい環境構築】」を参考にさせていただき、以下の作業を進める。

  1. Xcodeをインストール
  1. Homebrewをインストール
  1. pyenvをインストール
  1. pythonをインストール
  1. venvをインストール

XcodeとHomebrewのインストールは以下のページを参考にさせていただいた。

macOSでcommand line tools for Xcodeとhomebrewのインストール - Qiita

XcodeはAppストアからもインストールできるが、ここではターミナルから直接インストール。

mbp13:~ solvalou$ xcode-select --install
xcode-select: note: install requested for command line developer tools

 

まず以下のウインドウがでるので「インストール」を選択。

f:id:solvalou:20200510102738p:plain

続いて使用許諾についても「同意する」を選んで先に進む。

f:id:solvalou:20200510102759p:plain

 

以下のウィンドウがでれば無事成功。

f:id:solvalou:20200510102821p:plain

 

つづいてHomebrewのインストール。

Homebrewのホームページから、コマンドをコピペしてターミナルで実行する。

(「このスクリプトをターミナルに貼り付けて実行して下さい。」の部分をコピペ)

f:id:solvalou:20200510102849p:plain

実行すると以下のように進む(長いけど、省略せずにのせます)

mbp13:~ solvalou$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following existing directories will be made group writable:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
==> The following existing directories will have their owner set to solvalou:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
==> The following existing directories will have their group set to admin:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
==> The following new directories will be created:
/usr/local/etc
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks

Press RETURN to continue or any other key to abort
Password:
==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /usr/sbin/chown solvalou /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
==> /usr/bin/sudo /bin/mkdir -p /usr/local/etc /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/etc /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /usr/sbin/chown solvalou /usr/local/etc /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/etc /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /bin/mkdir -p /Users/solvalou/Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Users/solvalou/Library/Caches/Homebrew
==> /usr/bin/sudo /usr/sbin/chown solvalou /Users/solvalou/Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Enumerating objects: 67, done.
remote: Counting objects: 100% (67/67), done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 135903 (delta 8), reused 55 (delta 4), pack-reused 135836
Receiving objects: 100% (135903/135903), 32.81 MiB | 3.43 MiB/s, done.
Resolving deltas: 100% (99865/99865), done.
From https://github.com/Homebrew/brew
 * [new branch]      master     -> origin/master
 * [new tag]             0.1        -> 0.1
 * [new tag]             0.2        -> 0.2
 * [new tag]             0.3        -> 0.3
 * [new tag]             0.4        -> 0.4
 * [new tag]             0.5        -> 0.5
 * [new tag]             0.6        -> 0.6
 * [new tag]             0.7        -> 0.7
 * [new tag]             0.7.1      -> 0.7.1
 * [new tag]             0.8        -> 0.8
 * [new tag]             0.8.1      -> 0.8.1
 * [new tag]             0.9        -> 0.9
 * [new tag]             0.9.1      -> 0.9.1
 * [new tag]             0.9.2      -> 0.9.2
 * [new tag]             0.9.3      -> 0.9.3
 * [new tag]             0.9.4      -> 0.9.4
 * [new tag]             0.9.5      -> 0.9.5
 * [new tag]             0.9.8      -> 0.9.8
 * [new tag]             0.9.9      -> 0.9.9
 * [new tag]             1.0.0      -> 1.0.0
 * [new tag]             1.0.1      -> 1.0.1
 * [new tag]             1.0.2      -> 1.0.2
 * [new tag]             1.0.3      -> 1.0.3
 * [new tag]             1.0.4      -> 1.0.4
 * [new tag]             1.0.5      -> 1.0.5
 * [new tag]             1.0.6      -> 1.0.6
 * [new tag]             1.0.7      -> 1.0.7
 * [new tag]             1.0.8      -> 1.0.8
 * [new tag]             1.0.9      -> 1.0.9
 * [new tag]             1.1.0      -> 1.1.0
 * [new tag]             1.1.1      -> 1.1.1
 * [new tag]             1.1.10     -> 1.1.10
 * [new tag]             1.1.11     -> 1.1.11
 * [new tag]             1.1.12     -> 1.1.12
 * [new tag]             1.1.13     -> 1.1.13
 * [new tag]             1.1.2      -> 1.1.2
 * [new tag]             1.1.3      -> 1.1.3
 * [new tag]             1.1.4      -> 1.1.4
 * [new tag]             1.1.5      -> 1.1.5
 * [new tag]             1.1.6      -> 1.1.6
 * [new tag]             1.1.7      -> 1.1.7
 * [new tag]             1.1.8      -> 1.1.8
 * [new tag]             1.1.9      -> 1.1.9
 * [new tag]             1.2.0      -> 1.2.0
 * [new tag]             1.2.1      -> 1.2.1
 * [new tag]             1.2.2      -> 1.2.2
 * [new tag]             1.2.3      -> 1.2.3
 * [new tag]             1.2.4      -> 1.2.4
 * [new tag]             1.2.5      -> 1.2.5
 * [new tag]             1.2.6      -> 1.2.6
 * [new tag]             1.3.0      -> 1.3.0
 * [new tag]             1.3.1      -> 1.3.1
 * [new tag]             1.3.2      -> 1.3.2
 * [new tag]             1.3.3      -> 1.3.3
 * [new tag]             1.3.4      -> 1.3.4
 * [new tag]             1.3.5      -> 1.3.5
 * [new tag]             1.3.6      -> 1.3.6
 * [new tag]             1.3.7      -> 1.3.7
 * [new tag]             1.3.8      -> 1.3.8
 * [new tag]             1.3.9      -> 1.3.9
 * [new tag]             1.4.0      -> 1.4.0
 * [new tag]             1.4.1      -> 1.4.1
 * [new tag]             1.4.2      -> 1.4.2
 * [new tag]             1.4.3      -> 1.4.3
 * [new tag]             1.5.0      -> 1.5.0
 * [new tag]             1.5.1      -> 1.5.1
 * [new tag]             1.5.10     -> 1.5.10
 * [new tag]             1.5.11     -> 1.5.11
 * [new tag]             1.5.12     -> 1.5.12
 * [new tag]             1.5.13     -> 1.5.13
 * [new tag]             1.5.14     -> 1.5.14
 * [new tag]             1.5.2      -> 1.5.2
 * [new tag]             1.5.3      -> 1.5.3
 * [new tag]             1.5.4      -> 1.5.4
 * [new tag]             1.5.5      -> 1.5.5
 * [new tag]             1.5.6      -> 1.5.6
 * [new tag]             1.5.7      -> 1.5.7
 * [new tag]             1.5.8      -> 1.5.8
 * [new tag]             1.5.9      -> 1.5.9
 * [new tag]             1.6.0      -> 1.6.0
 * [new tag]             1.6.1      -> 1.6.1
 * [new tag]             1.6.10     -> 1.6.10
 * [new tag]             1.6.11     -> 1.6.11
 * [new tag]             1.6.12     -> 1.6.12
 * [new tag]             1.6.13     -> 1.6.13
 * [new tag]             1.6.14     -> 1.6.14
 * [new tag]             1.6.15     -> 1.6.15
 * [new tag]             1.6.16     -> 1.6.16
 * [new tag]             1.6.17     -> 1.6.17
 * [new tag]             1.6.2      -> 1.6.2
 * [new tag]             1.6.3      -> 1.6.3
 * [new tag]             1.6.4      -> 1.6.4
 * [new tag]             1.6.5      -> 1.6.5
 * [new tag]             1.6.6      -> 1.6.6
 * [new tag]             1.6.7      -> 1.6.7
 * [new tag]             1.6.8      -> 1.6.8
 * [new tag]             1.6.9      -> 1.6.9
 * [new tag]             1.7.0      -> 1.7.0
 * [new tag]             1.7.1      -> 1.7.1
 * [new tag]             1.7.2      -> 1.7.2
 * [new tag]             1.7.3      -> 1.7.3
 * [new tag]             1.7.4      -> 1.7.4
 * [new tag]             1.7.5      -> 1.7.5
 * [new tag]             1.7.6      -> 1.7.6
 * [new tag]             1.7.7      -> 1.7.7
 * [new tag]             1.8.0      -> 1.8.0
 * [new tag]             1.8.1      -> 1.8.1
 * [new tag]             1.8.2      -> 1.8.2
 * [new tag]             1.8.3      -> 1.8.3
 * [new tag]             1.8.4      -> 1.8.4
 * [new tag]             1.8.5      -> 1.8.5
 * [new tag]             1.8.6      -> 1.8.6
 * [new tag]             1.9.0      -> 1.9.0
 * [new tag]             1.9.1      -> 1.9.1
 * [new tag]             1.9.2      -> 1.9.2
 * [new tag]             1.9.3      -> 1.9.3
 * [new tag]             2.0.0      -> 2.0.0
 * [new tag]             2.0.1      -> 2.0.1
 * [new tag]             2.0.2      -> 2.0.2
 * [new tag]             2.0.3      -> 2.0.3
 * [new tag]             2.0.4      -> 2.0.4
 * [new tag]             2.0.5      -> 2.0.5
 * [new tag]             2.0.6      -> 2.0.6
 * [new tag]             2.1.0      -> 2.1.0
 * [new tag]             2.1.1      -> 2.1.1
 * [new tag]             2.1.10     -> 2.1.10
 * [new tag]             2.1.11     -> 2.1.11
 * [new tag]             2.1.12     -> 2.1.12
 * [new tag]             2.1.13     -> 2.1.13
 * [new tag]             2.1.14     -> 2.1.14
 * [new tag]             2.1.15     -> 2.1.15
 * [new tag]             2.1.16     -> 2.1.16
 * [new tag]             2.1.2      -> 2.1.2
 * [new tag]             2.1.3      -> 2.1.3
 * [new tag]             2.1.4      -> 2.1.4
 * [new tag]             2.1.5      -> 2.1.5
 * [new tag]             2.1.6      -> 2.1.6
 * [new tag]             2.1.7      -> 2.1.7
 * [new tag]             2.1.8      -> 2.1.8
 * [new tag]             2.1.9      -> 2.1.9
 * [new tag]             2.2.0      -> 2.2.0
 * [new tag]             2.2.1      -> 2.2.1
 * [new tag]             2.2.10     -> 2.2.10
 * [new tag]             2.2.11     -> 2.2.11
 * [new tag]             2.2.12     -> 2.2.12
 * [new tag]             2.2.13     -> 2.2.13
 * [new tag]             2.2.14     -> 2.2.14
 * [new tag]             2.2.15     -> 2.2.15
 * [new tag]             2.2.2      -> 2.2.2
 * [new tag]             2.2.3      -> 2.2.3
 * [new tag]             2.2.4      -> 2.2.4
 * [new tag]             2.2.5      -> 2.2.5
 * [new tag]             2.2.6      -> 2.2.6
 * [new tag]             2.2.7      -> 2.2.7
 * [new tag]             2.2.8      -> 2.2.8
 * [new tag]             2.2.9      -> 2.2.9
HEAD is now at a5a5a1a83 Merge pull request #7510 from MikeMcQuaid/disable-rspec-filepath
==> Downloading https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.6.3.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring portable-ruby-2.6.3.mavericks.bottle.tar.gz
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
remote: Enumerating objects: 717196, done.
remote: Total 717196 (delta 0), reused 0 (delta 0), pack-reused 717196
Receiving objects: 100% (717196/717196), 290.39 MiB | 4.33 MiB/s, done.
Resolving deltas: 100% (473014/473014), done.
Checking out files: 100% (5227/5227), done.
Tapped 2 commands and 4984 formulae (5,251 files, 318.3MB).
Already up-to-date.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (or will be during this `install` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run `brew help` to get started
- Further documentation:
    https://docs.brew.sh
mbp13:~ solvalou$

 

長くかかるので不安にもなるけれど、上記のように終わる前に「Installation successful!」とでて、エラーも出ずに終了。

一応ちゃんと動作するか確認しておく。

mbp13:~ solvalou$ brew doctor
Your system is ready to brew.

 

つぎはpyenvのインストール。

ターミナルで「brew install pyenv」を実行するだけだけれど、こちらもかなり長くいろいろなことが画面表示される。

(これも省略せずに一応のせておく)

mbp13:~ solvalou$ brew install pyenv
Updating Homebrew...
==> Installing dependencies for pyenv: autoconf, openssl@1.1, pkg-config and readline
==> Installing pyenv dependency: autoconf
==> Downloading https://homebrew.bintray.com/bottles/autoconf-2.69.mojave.bottle.4.tar.gz
==> Downloading from https://akamai.bintray.com/97/9724736d34773b6e41e2434ffa28fe79feccccf7b7786e546
######################################################################## 100.0%
==> Pouring autoconf-2.69.mojave.bottle.4.tar.gz
==> Caveats
Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/autoconf
==> Summary
🍺  /usr/local/Cellar/autoconf/2.69: 71 files, 3.0MB
==> Installing pyenv dependency: openssl@1.1
==> Downloading https://homebrew.bintray.com/bottles/openssl@1.1-1.1.1g.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/5c/5c9d113393ff3efc95e5509175305fc9304fba35390a61915
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.1g.mojave.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.

If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

==> Summary
🍺  /usr/local/Cellar/openssl@1.1/1.1.1g: 8,059 files, 18MB
==> Installing pyenv dependency: pkg-config
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2_3.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/0d/0d14b797dba0e0ab595c9afba8ab7ef9c901b60b4f806b365
######################################################################## 100.0%
==> Pouring pkg-config-0.29.2_3.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/pkg-config/0.29.2_3: 11 files, 623.6KB
==> Installing pyenv dependency: readline
==> Downloading https://homebrew.bintray.com/bottles/readline-8.0.4.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/29/29f7102a730ab39c8312cad1e7e439f6da2a67c452ce2b338
######################################################################## 100.0%
==> Pouring readline-8.0.4.mojave.bottle.tar.gz
==> Caveats
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides BSD libedit.

For compilers to find readline you may need to set:
  export LDFLAGS="-L/usr/local/opt/readline/lib"
  export CPPFLAGS="-I/usr/local/opt/readline/include"

For pkg-config to find readline you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig"

==> Summary
🍺  /usr/local/Cellar/readline/8.0.4: 48 files, 1.5MB
==> Installing pyenv
==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.18.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/05/05f0414ec85ad0eb46a4046d9bee6da318b2b68fd9b64b118
######################################################################## 100.0%
==> Pouring pyenv-1.2.18.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/pyenv/1.2.18: 695 files, 2.5MB
==> Caveats
==> autoconf
Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/autoconf
==> openssl@1.1
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.

If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

For pkg-config to find openssl@1.1 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

==> readline
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides BSD libedit.

For compilers to find readline you may need to set:
  export LDFLAGS="-L/usr/local/opt/readline/lib"
  export CPPFLAGS="-I/usr/local/opt/readline/include"

For pkg-config to find readline you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig"

 

つづいて、以下を .bash_profile に追加しておく。

export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

 

.bash_profileに書いた内容を有効にして、インストールができているか確認。

mbp13:~ solvalou$ souce ~/.bash_profile
mbp13:~ solvalou$ brew list | grep pyenv
pyenv
mbp13:~ solvalou$ pyenv --version
pyenv 1.2.18

 

これでOK。

やっとPython本体のインストールへ進む。

まずはインストール可能なPythonのバージョンを確認する。

mbp13:~ solvalou$ pyenv install -l
Available versions:
  2.1.3
  2.2.3
  2.3.7
  
=== 中略 ===
  3.5.8
  3.5.9
  3.6.0
  3.6-dev
  3.6.1
  3.6.2
  3.6.3
  3.6.4
  3.6.5
  3.6.6
  3.6.7
  3.6.8     <= 今回はこのバージョンをいれてみる
  3.6.9
  3.6.10
  3.7.0
  3.7-dev
  3.7.1
  3.7.2
  3.7.3
  3.7.4
  3.7.5
  3.7.6
  3.7.7
 
=== 中略 ===

  anaconda2-2.4.0  anaconda3-4.4.0
  anaconda3-5.0.0
  anaconda3-5.0.1
  anaconda3-5.1.0
  anaconda3-5.2.0
  anaconda3-5.3.0
  anaconda3-5.3.1
  anaconda3-2018.12
  anaconda3-2019.03
  anaconda3-2019.07
  anaconda3-2019.10
 
=== 中略 ===   
  stackless-3.4.7
  stackless-3.5.4

 

今回は訳あってバージョン3.6.8をインストールしたけれど、他のものでも同様に進行していく。

「pyenv install 3.6.8」と入力して実行。

mbp13:~ solvalou$ pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.8.tar.xz...
-> https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
Installing Python-3.6.8...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.6.8 to /Users/solvalou/.pyenv/versions/3.6.8

 

これもまあまあ時間がかかるものの無事終了。

インストールを確認するには、「pyenv versions」でOK。

mbp13:~ solvalou$ pyenv versions
* system (set by /Users/solvalou/.pyenv/version)
  3.6.8

 

これで*が付いている方が現在の環境。

Python3.6.8の環境に移るには、「pyenv global 3.6.8」を実行。

mbp13:~ solvalou$ pyenv global 3.6.8
mbp13:~ solvalou$ pyenv versions
  system
* 3.6.8 (set by /Users/solvalou/.pyenv/version)

 

これで、python3が使えるはず。一応確認すると、

mbp13:~ solvalou$ python
Python 3.6.8 (default, May  9 2020, 13:28:52)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

 

というわけで、無事Python3が起動。

今日はここまでで、続きはまた。

新しい財布がほしくなった

今使っている財布もだいぶ古くなってきたし、新しいのがほしいなと思う。
候補は二つ。

候補その1:idekaのミニ財布

f:id:solvalou:20200509093440p:plain


候補その2:abrASUSの薄い財布

f:id:solvalou:20200509093650p:plain

 

その2はちょっと高いな〜と思うけれど、ブランド的には安心かも。
カラーバリエーションが豊富で、緑があるのもうれしい。
もっと安いのもあるみたいなので今月中を目途に選んでみよう。
飲み会や昼の外食も全然ないので、このくらいはいいかな。

Python環境の再構築@macbook pro <1>

先日のブログ(5月3日)に、

macOS(conda環境)でturtleを使おうとしてもうまくいかない。

具体的には以下のことを行うとすべてmacOSが再起動されてしまうというかなり深刻な状態。

  • Tkinterのバージョンを調べる

  • turtleモジュールをインポートさせるpythonスクリプトを実行する

  • Jupiter notebook環境で上記を実行しても同じ

と書いたが、そもそもturtleの問題ではなく、どうもtkinterに関連する現象であることはほぼ確実みたい。 たまたま自分のノート(mcbook pro)が悪いのかと思って、もう一台別のマシンで確認してみたが、ほぼ同じ現象が再現された。

一方で、昔のiMacを再起動して、OSクリーンインストール=>Anacondaのインストールで試したところ、

  • こちらもidleではpython2が起動するものの、idle3と入力するとpython3のidleが起動される
  • tinterをつかったスクリプトも問題なく動作する

ということがわかり、かならずしもすべてのmacの環境で同じことが起こるわけでもないようだ。

せっかく PythonGUIプログラミングの勉強をはじめよう、とおもったところにこの状態。 連休中だし、自粛中だし、まあこの際すっかりPythonの環境をクリーンに再構築しよう、ということで再構築作業をはじめたのでメモしておく。

この手の情報はWEBにたくさん出ているので、まずはどこを参考にするかチェックする。 いくつか役に立ちそうな記事を発見したので、それらを参考に作業を進めていく。

Pythonの環境をクリーンに再構築する」が目的なので、以下の順で作業を進めていくことにする。

  1. まずは自分のmacPython環境をデフォルトに戻す。

  2. そこにPython3をインストールしなおし、仮想環境を構築する 環境にはvenv(Python3.6以上で推奨されているらしい)を使う

かなり長くなるので、今日のところは1.までを詳細にメモとして残しておく。

Python環境をデフォルトに戻す

具体的には、anacondaを完全にアンインストールして、デフォルト(Python2.7のみインストールされている状態)にする。 参考になったのは以下のページ。

weblabo.oscasierra.net

もともと、anaconda3をインストールしたあとに、condaで環境構築していたので、 まずは仮想環境の削除から。Python3.8.2をインストールした仮想環境「py386」をつくっていたので、 まずはそれを削除。

(base) mbp13:~ solvalou$ conda remove -n py382 --all


Remove all packages in environment /Users/solvalou/anaconda3/envs/py382:


## Package Plan ##

  environment location: /Users/solvalou/anaconda3/envs/py382


The following packages will be REMOVED:

  ca-certificates-2020.1.1-0
  certifi-2020.4.5.1-py38_0
  libcxx-4.0.1-hcfea43d_1
  libcxxabi-4.0.1-hcfea43d_1
  libedit-3.1.20181209-hb402a30_0
  libffi-3.2.1-h0a44026_6
  ncurses-6.2-h0a44026_0
  openssl-1.1.1g-h1de35cc_0
  pip-20.0.2-py38_1
  python-3.8.2-hc70fcce_0
  readline-8.0-h1de35cc_0
  setuptools-46.1.3-py38_0
  sqlite-3.31.1-h5c1f38d_1
  tk-8.6.8-ha441bb4_0
  wheel-0.34.2-py38_0
  xz-5.2.5-h1de35cc_0
  zlib-1.2.11-h1de35cc_3


Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

一応確認すると、(base)のみ残っているので無事削除できている。

(base) mbp13:~ solvalou$ conda info -e
# conda environments:
#
base                  *  /Users/solvalou/anaconda3

(base) mbp13:~ solvalou$
(base) mbp13:~ solvalou$ env | grep CONDA
CONDA_SHLVL=1
CONDA_PROMPT_MODIFIER=(base)
CONDA_EXE=/Users/solvalou/anaconda3/bin/conda
_CE_CONDA=
CONDA_PREFIX=/Users/solvalou/anaconda3
CONDA_PYTHON_EXE=/Users/solvalou/anaconda3/bin/python
CONDA_DEFAULT_ENV=base

ここから、上記WEBサイトの通りに作業を進める。

  • anaconda-cleanを実行する (厳密には、anaconda-cleanをインストールしてから、実行)

anaconda-cleanのインストール&実行の画面は以下の通り。 まずはインストール:

(base) mbp13:~ solvalou$ conda install anaconda-clean
Collecting package metadata (current_repodata.json): done
Solving environment: /
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  - defaults/osx-64::anaconda==2019.07=py37_0
  - defaults/osx-64::numba==0.44.1=py37h6440ff4_0
done

## Package Plan ##

  environment location: /Users/solvalou/anaconda3

  added / updated specs:
    - anaconda-clean


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    anaconda-clean-1.1.0       |           py37_1           7 KB
    tbb-2020.0                 |       h04f5b5a_0         150 KB
    ------------------------------------------------------------
                                           Total:         157 KB

The following NEW packages will be INSTALLED:

  anaconda-clean     pkgs/main/osx-64::anaconda-clean-1.1.0-py37_1
  tbb                pkgs/main/osx-64::tbb-2020.0-h04f5b5a_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
tbb-2020.0           | 150 KB    | ######################################################### | 100%
anaconda-clean-1.1.0 | 7 KB      | ######################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

つづけてanaconda-cleanを実行:

(base) mbp13:~ solvalou$ anaconda-clean
Delete .anaconda? (y/n): y
Backup directory: /Users/solvalou/.anaconda_backup/2020-05-05T110440
Delete .conda? (y/n): y
Delete .condarc? (y/n): y
Delete .idlerc? (y/n): y
Delete .ipynb_checkpoints? (y/n): y
Delete .ipython? (y/n): y
Delete .jupyter? (y/n): y
Delete .matplotlib? (y/n): y

一応ここまで問題なく実行できたが、バックアップは一応とっておくことにする。 (削除するときには以下のコマンドで削除)

$ rm -fr ~/.anaconda_backup
  • Anaconda3ディレクトリを削除する Anaconda3のディレクトリの場所を確認して削除。これはすぐにできる。 *普通は /Users/solvalou/anaconda3 にあると思う。

  • .bash_profileの中のPathを追加する記述を削除する 適当なeditorで.bash_profileを編集。 前回Anacondaをインストールするときに追加された以下の部分をまるっと削除する。

# added by Anaconda3 2019.07 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/solvalou/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/Users/solvalou/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/solvalou/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/Users/solvalou/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

vimでファイルを開いて中身を削除。 ちゃんと消えたか一応確認しておく。

(base) mbp13:~ solvalou$ vim .bash_profile
(base) mbp13:~ solvalou$ cat .bash_profile
(base) mbp13:~ solvalou$

これで問題なく削除できていることが確認できた。

  • ショートカットを削除する これは、単にFinderからアプリケーションフォルダにあるAnacondaのエイリアスアイコンをゴミ箱にいれて終了。

一応macを再起動して、Pythonがデフォルトの状態にもどったか確認すると、

mbp13:~ solvalou$ which python
/usr/bin/python
mbp13:~ solvalou$ python --version
Python 2.7.10

mbp13:~ solvalou$ python
Python 2.7.10 (default, Feb 22 2019, 21:55:15)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

mbp13:~ solvalou$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7/lib/
total 0
lrwxr-xr-x    1 root  wheel      9  7 29  2019 libpython2.7.dylib -> ../Python
drwxr-xr-x    5 root  wheel    160  7 29  2019 pkgconfig
drwxr-xr-x  649 root  wheel  20768  2 23  2019 python2.7

デフォルトではPython2.7.10がインストールされている。

以上のとおり、ほぼ参考にしたページ記載の通りに作業をすすめて、無事にアンインストールできた模様。 続きはまた明日以降に。

Bluetoothキーボード

ちょっと前から(もうだいぶ経つな。。。)荷物の軽量化の一貫でいろいろとmac周りのアイテムを整理している。iPad miniでできるだけいろいろな環境を整えるという目的で、Bluetoothキーボードを導入したのだけれど、思っていたより使い心地がいい。

導入したのはiCleverのこのキーボード:

iClever 折りたたみ式BluetoothキーボードIC-BK03

 

 

 

もちろん、いいところも悪いところもあるが、いまのところは満足して使っている。(ちなみに普段はHHK Pro2 Type-S US 無刻印をつかっている)

いいところ:

  • 軽量、折りたたみ式で小さくなり持ち運びに抵抗がない
  • 接続も簡単でマルチペアリング可能で、、3つの機器まで登録できる(mac, iPad, iPhoneでつかっている)
  • 充電式でかなり長持ち(電池がきれたらmicroUSBで充電可能)
  • キータッチもまずまず

不満なところ:

  • 両端がやや「そる」感じがする。
  • キーの位置が通常のキーボードと少し違う(数字キーがなれるまで多少まちがえる)
  • Mac用でないからcommandキーがない(Win, Altがある)
  • たまに通信が乱れることがある(何が原因かわからないが)

mac/iPad mini/iPhoneで使っていくにあたり、いくつかコツがあるのでメモ。[commmand] の代わりは[win]、[Option]の代わりは[Alt]とおもっておけばOKらしい。

つまり、

日本語入力切替は [Win + Space]

スクリーンショット(ウィンドウ指定、影なし)は[Shift + Win + 4 + Space + Alt]

といった具合。

ラーメン久しぶり

自粛生活がはじまってから、(当然ながら)外出が減り、外食が減り、ラーメンもしばらくは食べていなかった。記録をみると、最後にたべたのは4月6日の深夜。

こんなに長期間ラーメンを食べていない(カップラーメンを除く)のは久しぶりだったのだけれど、昨晩デニーズで担々麺を食べてきた。

なんでデニーズか、というと、単純に3月末に放送された「ラーメン大好き小泉さん・2代目」で紹介されていたから。もちろん、番組の中で紹介されたラーメン屋さんたちで、もっと行ってみたいところはたくさんあったのだけれど、なかなか今の時期ラーメンのために遠出はしにくい。

f:id:solvalou:20200504103634p:plain

久しぶりのラーメンだったということもあり大満足!で帰宅。

ごちそうさまでした〜