読者です 読者をやめる 読者になる 読者になる

Pythonの環境管理ツール良し悪し

EDIT: 本記事公開後いくつか近い話題の記事を教えていただいた。突っ込んだ話も多く参考になるので、末尾の参考欄から是非あわせて読んでいただきたい。

本記事は社内向けに書いた文章を修正したものである。

世の中にある代表的な「Python環境管理ツール」に virtualenv, pyenv, venv の3つがある。これらをGoogleで検索すると使い方が書かれたページばかりが出てきて、それらの違いや使い分けを解説する記事は少ない。

本当は必要ではないのに「pyenvは便利」のような謳い文句で何となく使わせる記事や、古い情報を元に書いた「一見新しそうに見える記事」も多く見られる。

この記事では、中立・実用重視な視点から各ツールを解説し、筆者が考えうるベター(ベストは人それぞれ)な組み合わせについて書く。

なおAnacondaは初学者には推奨できない。Anacondaについての筆者の解釈は末尾にあるためそちらも参照されたい。

TL; DR

この文章で話すことをかんたんに言うと、

  • pyenvでPythonの複数バージョンを管理する
  • venvでパッケージ環境を切り分ける (Python 2ならvirtualenv)

以上の組み合わせがいろんな意味で柔軟かつサポートが安定している。

非プログラマーの場合は、OSのパッケージマネージャーで最新のPythonをインストールした方が簡単でトラブルシュートしやすい。

続きを読む

NASの引っ越しをrsyncでやってみる

EDIT: ASUSTOR NASを使ってみた感想について末尾に追記した。

長らくPCのお世話をしている地元の工事会社にNASを導入したのはかれこれ8年前。

当時中学2年だった私は何万円もの機器たちがカード一枚でスパスパ購入されていくのを見て緊張したことをよく覚えている。購入を指示したのは自分だったとはいえど、これから自らの手でいち企業のPC環境を構築するのだとドキドキしたものだ。慎重な運用もあってか、念のためとRAID1にした2台のHDDは今の今まで壊れることなく動いてくれた。

さて、そんな思い出深いNASもそろそろ見切りをつける頃になってきた。転送速度がだんだん下がってきたのである。同じハードウェアながら少しずつ転送速度が下がってくるのだからコンピュータは不思議だ。やはりデジタル回路と言えども、マクロに見ればアナログの世界に生きていることが伝わってくる。

で、何をしたの

思い出ポエムは置いておいて…

今回は古い Buffalo LS-WHGL/R1 からASUSTOR AS1002T への移行をrsyncで行った。以下にいきさつと手順を書く。

続きを読む

都道府県の画像アセットを全自動生成しよう。

f:id:puhitaku:20161222002423p:plain

やったこと

47都道府県をSlack絵文字にしたかったので、Natural EarthのShapefileからPNGアセットを自動生成させるコードをPythonで書いた。 コードの工夫次第で何にでも応用が利き便利そうなのと、加えてKartograph.pyの情報が少なかったため備忘録を書いておく。

悲しいかなKartograph.pyはメンテされておらずPython 2.7でしか動かないため、本記事に登場するコードは全部Python 2.7向けに書いている。 探せばもっと優れたライブラリもあるはずだ。

手順

「Pythonで地理データを読む」〜「縮小処理」までは単なる手順の備忘録なので、とりあえず出力したい場合は「ライブラリのインストール」まで済ませて末尾のGistに載ってるコードを動かすだけでOK。私が出力したデータもZIPにして同じく末尾に置いているので、それを落としてもらってもよい。

  • 地理データを入手
  • ライブラリをインストール
  • Pythonで地理データを読む
  • 都道府県別に切り出す
  • 見た目を整える
  • PNG出力
  • 縮小処理
  • 完成!
続きを読む