ただ枯れゆく大樹が如く

技術の話やら愚痴やら節操もなく徒然と

brewでインストールした/usr/local/bin/pythonが使用されない

使用していたシェルをzshからfishに変更して"virtualfish"を読み込もうとした際、brewでインストールした/usr/local/bin/pythonではなく、systemの/usr/bin/pythonが使用されていた。 それにより"/usr/bin/python: No module named virtualfish"が出てしまって右往左往したので解決策を書く。

環境

インストールしたもの

$brew install python
$brew info python
python: stable 2.7.13 (bottled)
  • virtualfish
$pip install virtualfish
$pip freeze | grep virtualfish
virtualfish==1.0.5

エラーになったコマンド

  • ~/.config/fish/config.fishでのvirtualfish設定
$/usr/bin/python -m virtualfish
/usr/bin/python: No module named virtualfish

調査

まずはpythonのバージョンをチェックした。

$python -V
Python 2.7.10

ついでにpythonのパスもチェックしたところ、brewでインストールされたpythonを使ってないことが分かる。

$which python
/usr/bin/python

調べているとbrew unlink python; brew link pythonで解消したとの事例があったので試したが駄目。

次に見たのが/etc/paths/usr/local/binよりも上に/usr/binがあると駄目ってあったので確認したが問題なし。

$cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

結論

/usr/local/binを改めて見てみると、brewでインストールしたpythonって/usr/local/bin/pythonじゃなくて、/usr/local/bin/python2だと気づいた。

$/usr/local/bin/python2 -V
Python 2.7.13

となればシンボリックリンクを貼ってやれば解決するなということで、

$ln -fs /usr/local/bin/python2 /usr/local/bin/python
$python -V
Python 2.7.13

ようやくbrewでインストールしたpythonが使用されていることが確認出来たので最後にエラーが出ていたコマンドを確認。

$python -m virtualfish
set -g VIRTUALFISH_VERSION 1.0.5;set -g VIRTUALFISH_PYTHON_EXEC /usr/local/opt/python/bin/python2.7;. /usr/local/lib/python2.7/site-packages/virtualfish/virtual.fish;emit virtualfish_did_setup_plugins

以上。問題ないことが確認出来た。

nodebrewはbrewでinstallしてはいけない

nodebrewのインストールおよび設定でハマったので備忘録として書いておく。

普通にbrewでインストール

↪ brew install nodebrew

特に問題は発生せず、nodebrew install-binary latestでも正常にインストールできた。

↪ nodebrew list
v10.4.1

current: none

ということなのでインストールしたnodeを有効化しようとしてuseしたのだが、、、

↪ nodebrew use latest
use v10.4.1
↪ nodebrew list
v10.4.1

current: none

と有効化されない。path周りも一通り調べたけどだめだったのでgithubのインストール手順に従う。

githubのインストール手順に従ってインストール

まずその前にhomebrewでインストールしたゴミを削除する。

↪ brew uninstall --force nodebrew

↪ rm -rf $HOME/.nodebrew

以下手順にしたがってインストールする。

nodebrew : https://github.com/hokaccha/nodebrew

↪ curl -L git.io/nodebrew | perl - setup
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 24569  100 24569    0     0  13048      0  0:00:01  0:00:01 --:--:-- 13048
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

latestバージョンをインストール

↪ nodebrew install-binary latest
↪ nodebrew list
v10.4.1

current: none

latestバージョンを有効化

↪ nodebrew use latest
use v10.4.1
↪ nodebrew list
v10.4.1

current: v10.4.1

無事にcurrentにlatestバージョンがセットされている。念のためにnodenpmを確認しといたが問題なし。

↪ node -v
v10.4.1
↪ npm -v
6.1.0

最後に

一先ず正常に使える状態にはなったけどコマンド関連はbrewで管理しとかないと環境移行の際に漏れが出てくるので、homebrewでエラーが出ないようにする方法も探していかないとな。

vscodeを使ってみた

今までatomを使い続けて来たけど、置換処理とか遅すぎて耐えられなくなって来たのでvscodeを試してみる。 単純な文字列置換はatomで1分以上かかる処理がvscodeなら一瞬で終わったので、あとはそれ以外でatomでやっている作業を代替えできるか見ていく。

現在atomでやっていること

まずはpython開発環境の整備

とりあえずはFormatterとlinterとして「Python」,「Python for VScode」を入れた。 特に「vscode-python-docstring」のdocstringの自動生成は結構便利に使える感じだ。 こういったドキュメンテーションを追加するのが面倒な人はおすすめ。

emberjs関連のパッケージ

「emberjs」で諸々入るのでとりあえずこれだけで基本的な開発は大丈夫な感じ。 helper周りなど正直言ってemberjsの習熟度は高くないので、AutoCompleteできる「Ember Language Server」は個人的には必須機能。

jsonデータの整形方法

特に追加の拡張機能無しで整形は可能でした。

  1. 「command+shift+P」から「Change Language Mode」と入力
  2. 数ある言語から「JSON」を選択
  3. 「option+shift+F」でJSONデータが整形

Markdownのプレビュー方法

特に追加の拡張機能無しでMarkdownのプレビューが可能でした。

  1. 「command+shift+P」から「Change Language Mode」と入力
  2. 数ある言語から「Markdown」を選択
  3. [command+k]のあとに「v」を入力

使ってみた感想

とりあえず圧倒的にatomよりも早いので完全に乗り換えた感じ。 なんとなくデザインが気に入らない感じではあるが、使い勝手は良いし拡張機能もそれなりに充実していそうなので一先ず当面はvscodeで作業していこうかと思う。

気付けば転職して一年が経過

気が付けば転職して一年が経過していた。

比較的裁量が大きめかつ、スケジュールに関しても割り込み作業が少なく想定したスケジュールで作業できたので個人的にはストレスが少ない一年だった。

主にやったこと

  • 請求系システムの再構築
  • 集計系システムの新規構築
  • ポータル機能の改修

主言語

身に付けたスキル

  • aws全般(特にlambda, redshift周り)
  • Bigquery

一年を通して

とりあえずawsをメインで使用していたわけだが、一言でawsを表すならMoney is power 結構な金をかけるなら何も気にせず作っていけるが、予算が限られた中でするには結構省メモリプログラミングを意識していかなきゃいけない。 まぁこういう細かいのも好きだけど、個人的にはGCPの方が好きなので、どこかで優位性の証明でもして切り替えるように促して行くか。

再びブログを書くことにした

そろそろ転職してから1年が経とうとしている。

転職当初ほどのモチベーションは無くなってしまっているので、自学をしながらモチベを高めていくために再度ブログを書いていくことにする。

以前みたいに週何回とか決めて自分を追い込むのではなく、のんびりと自分の書きたいときに書くという方針でやっていく。

まぁとりあえずブログの体裁を整えることからはじめますかね。