アカデミア・ポッターと謎のパイソンパス


前置き

昨年、闇の魔術アドカレに出来心でブラック研究室時代のことを書いたところ、うっかりバズってしまい、自身で一番いいねを獲得した記事がクソポエムという有様になってしまった1

今年も性懲りもなくエントリーしてしまったので、当時の苦労話でも書こうと思う。(さすがにこれはバズらない...?)

汚されたPYTHONPATH

前回記事で書いた通り、

  • コンピュータについては超保守的なスタッフ陣(せいぜいfortran90が最新
  • プログラミングを扱う研究室なのにお世辞にもマナーがいいとは言えないメンバー

の下で、自分のプログラマとしての信念をなんとか作りながら黙々とコードを書いていたわけだが、そんな中でも一つ上で仲よくしてもらった先輩がいた。その先輩は保守的な研究室の中でも自分と同じエンジニア気質だったが、逆に理論研究方面よりは情報系に傾倒しすぎていたので、研究室の中でも異端扱いされていた。自分は、理論はほかの博士課程の先輩2に指導を仰ぎつつ、プログラミングに関してはその先輩からSNSでもらったりしていた3

と、内輪話はここまでにしておいて、「Pythonを使うのは自分かその先輩くらい」という状況だったわけだが、Python3ではなくPython2を使っていた。理由はなぜかmatplotlibなどの主要ライブラリがうまく動かないからだった。ほかにもgitなどいくつかのソフトがうまく動かないことがあった。よくわからないが、Python2だと問題がなかったので、Python2でポストプロセスコードを書いたりしていた。

ある日、環境変数を見る機会があった。すると、何やらわけのわからないところにPATHが通っていた。よく見ると、エンジニア先輩が普段使っている共有ディレクトリだった。おそらく、スパコンシステムのrootなんて取れるわけがないので、--userフラグを立ててインストールしたのだと思う。PYTHONPATHもおそらくそのパスが入っていたと思う。

相当ぐっちゃぐちゃになっていたうえ、当時は自分もそこまで知識がなかったので、結局何も対処することなく修了してしまった。

対処法

gitに関しては一言では書ききれないが、Pythonのライブラリについては、venvを使うことで回避できる。

venvを使えば、仮想環境を元ある環境から切り離すことができるし、rootが必要なディレクトリを使わずライブラリを入れることができる。そのうえほかのユーザにも影響を及ぼさない。

ちなみに、venvについては、先日自分でまとめてあるので参考にしてもらいたい(ダイマ)。
https://qiita.com/bluepost59/items/c13c88a9387e28189d7b

追記

venvはもう古いらしい。

まとめ

この記事にエンジニア先輩を責める意図は一切ない。先輩も当時は学生だし、新しいものを入れてみたいという気持ちはよくわかる。

結局今年も半分以上ポエムになってしまったが、誰かの役に立てばうれしい。


  1. こんなアカウント、転職したくなっても見せれない、転職するつもりはしばらくはないが...。 

  2. この人はがっつり物理屋で、プログラミングに関してはあまり詳しくない。 

  3. 対面じゃないのかということについては、その人が自分以上に研究室に来ないというのもあったが、自分がオフタイムも相当つぶして研究していたという事情もある。当時は「D進するなら公私の区別なんかせずに打ち込んで当たり前」みたいな考えを持っており、その上スパコンにはインターネットがあればSSHでつなぐことができたので、自宅でも深夜3時くらいまで研究室のコードをいじっているのが当たり前だった。そのため、「つまったところがあるとtwitterでツイートしたら、その先輩に教えてもらえた」ということが多々あった。今、冷静に考えてみれば、そんな「オフの時間も突っ込む」というようなスタイルが、職業にできるほどに持続可能であるわけがないのだった。