薬味備忘録

Aonori Tech Diary

Dockerとpip installでexit code 137になった話

Dockerでpip installしてたら終了コード137で落ちた

少し重めのパッケージをinstallしていると、唐突にError code 137で落ちまた

f:id:aonrjp:20190418011239p:plain

悲しみ。結論から言えば、Dockerに割り当てていたメモリ容量不足でした。

Error Code 137 とは

http://tldp.org/LDP/abs/html/exitcodes.html

Error code 137128 + 9 = 137
すなわち、シグナル9の致命的なエラーで終了した。

Signal 9 とは

signal(7) - Linux manual page

シグナル9SIGKILLだってさ、強制終了やんけ。

Docker Engineにはメモリ割り当て量を指定できる

さて、VMware Fusion等と同じく、DockerEngineにもCPUコア数なりメモリ容量なり、割り当て量が設定できます。

f:id:aonrjp:20190418003911p:plain

Docker設定画面のAdvancedから設定できます。
実際の搭載容量とホスト側に残す量を考えながら割り当てましょう。

結果

f:id:aonrjp:20190418013027p:plain

無事成功、世界平和が訪れた。

参考

MeCab用のDockerfile - sanshonokiの日記

EagleのSchematicからlbrを救出する方法

Eagleのschからlbrを吸い出す

KiCadではシンボルとフットプリントが分かれているので、パッドの差し替えもすぐ出来ます。 一方Eagleでは、それらがセットになっているので、lbr単位で管理したくなります。

ところが、他人の作ったプロジェクトをもらってきたらlbrが同梱されていなかったりするとキレそうになる(schからlbrにはコピペできないので)

実はデフォで入ってる

ついこの前まで知らなかったんですが、Eagleではデフォルトでlbr抽出スクリプトexp-lbrs.ulpが用意されています。 手順は簡単で、

  1. 吸い出し元のschファイルを開く
  2. Eagleのコマンドラインrun exp-lbrsを実行
  3. 出力したいライブラリを選択してOKで出力

1. 吸い出し元のschを開く

言わずもがな、お好きな方法で開いてください。ただし、brdではなくschを開くこと。brdから実行すると正しく吐かれません。

2. コマンドラインからスクリプト実行

Eagleでschを開く

Eagleのコマンドラインからrun exp-lbrsと実行。

3. 出力したいものを選択

exp-lbrsのダイアログ

検出されたライブラリが並んでいるので、出力したいライブラリを選択。出力先ディレクトリを確認してOKを押せば出力される。

余談

以前はKiCadがmacでまともに描画されなかったのでEagle派でしたが、最近はそれなりにちゃんと動くので個人ではKiCadばかり使っています。 正直どっちが使いやすいか分からなくなってきたw

参考リンク

EAGLEのライブラリファイル.lbrを救出する - how to code something