csvlookが使えない

ある日、タブ区切りのデータを人に見せる必要があって、csvlookを使おうとしたら

zsh: /usr/local/bin/csvlook: bad interpreter: /usr/local/opt/python3/bin/python3.5: no such file or directory

というエラーが出て使えず。しょうがないのでその場は普通にlessで見せたが、その後原因究明を。 どうも、homebrewで入れたpythonのバージョンが上がったために(3.5から3.6に)、このエラーが出ているらしい。pythonはhomebrewで管理している一方で、csvlookはcsvkitの一部で、pipで管理されているツールである。そこで一度uninstallして再度installする戦略で。 [shell] pip3 uninstall csvkit pip3 install csvkit [/shell] しかしながら、

PermissionError: [Errno 13] Permission denied: '/usr/local/bin/unidecode'

というエラーが出て、csvkitのインストール失敗。これは、

% ls -l /usr/local/bin/unidecode
-rwxr-xr-x 1 root admin 334  7  9  2016 /usr/local/bin/unidecode*

という具合に、/usr/local/bin/unidecodeがrootユーザーの持ち物になっているため、一般ユーザーでは書き換えができなかったから。そこで、 [shell] sudo chown -R bono /usr/local [/shell] してファイルの持ち主を自分にする。その上で再度、 [shell] pip3 install csvkit [/shell] 今度は、エラーメッセージが出ず、うまくインストールできた模様。 これでまたcsvlookが使えるように。


Written by bonohu in misc on 月 20 3月 2017.