howto

pipenv2018.7.1とpip18.1の組み合わせはエラーになる

不具合に遭遇したのでメモ。 現象 $ pipenv install {some_package} すると、エラー終了する。 Pipfileやパッケージのインストール自体は完了している lockfileの作成あたりでコケている模様? 原因 エラーメッセージでググると同様の事象を見つけた。 https://github.com/pypa/pipenv/issues/2871 pipenv2018.7.1とpip18.1の組み合わせがエラーを起こしている模様。 解決方法 workaroundとしてはpipを18.0にする。 ポイントとしては、pipenvの環境のほうのpipを18.0にする。 $ pipenv run pip install pip==18.0

Pythonの環境構築にpipenvを使う

pipenvというPythonの仮想環境構築ツールを使い始めました。詳細は公式を見れば良いとして分かりづらかったところのメモ書き。 Pipenv: 人間のためのPython開発ワークフロー 書いている時点のバージョンは以下 $ pipenv –versionpipenv, version 2018.7.1 インストール 繰り返しだが詳細は上記の公式サイトのドキュメントを読めば良い。macOSの場合Homebrewとpipを使う方法があるようですが、私はPythonのバージョン管理にpyenvも使っていてHomebrewの方で入れるとバージョンが変になりそうな気がしたのでpipの方でインストールしました(Homebrewで試してはいない)。 $ pip install pipenv すると、下記のようにpyenv配下にpipenvがインストールされてる模様。 $ which pipenv /Users/hkuro/.pyenv/shims/pipenv 使い方 任意のディレクトリで $ pipenv shell とすると、”カレントディレクトリの名前-{hash}”という名前のvirtualenvが~/.local/share/virtualenvs/配下に作成される。hashの部分は詳しく調べてないけど何らかのハッシュみたいなので、別の同名ディレクトリでpipenv shellしても別のvirtualenvとして作成される(そりゃそうか)。 環境変数を設定することでカレントディレクトリに作成されるようにすることが可能( PIPENV_VENV_IN_PROJECT)。これは環境によって違いそうなのでpipenv shellするときのオプションであったほうが便利そうな気もする。…

VSCodeでThree.jsの開発環境を整える(1)

しばらく利用していなかったVisual Studio Codeをバージョンアップしてみたらすごく速く使いやすくなっていたので、すこし本格的に環境を構築して使ってみることにしました。VSCodeおよびnodeなどもこれまでごく基本的な利用しかしていないので、それらの知識のアップデートも兼ねます。 とりあえず、JavaScript(Three.js)の開発環境を構築することを目的にします。 VSCodeのIntelliSenseを利用したコード補完ができること ChromeまたはFireFoxでブレークポイントを利用したデバッグが可能なこと デバッグはdockerのコンテナ環境で構築すること 上記3点ができるようになることを目的として、 まずは任意の.jsプロジェクトでthree.jsのコード補完が可能になることを目指します。 新規プロジェクトフォルダを作成する 任意のフォルダ名でプロジェクトフォルダを作成して、その中にcdします。 $ mkdir myproject $ cd myproject npm環境を作成する まず、nodeのパッケージマネージャであるnpmが利用するpackage.jsonというファイルを作成します。これは以下のコマンドを利用するとjsonファイルが作成されます。自力で作っても別にいいと思う。 $ npm init 実行すると幾つか質問されるので答えていくが、とりあえずは適当(空欄)でもいいはず。 Three.jsをnpmでインストールする npmレポジトリにthreeというパッケージが存在するので、これをnpmコマンドでインストールします。注意点として、VSCodeのIntelliSenseがJavaScriptの補完をするためにはTypeScriptの型定義ファイル(?)を利用し、これはnpmで管理されているようなメジャーなものならばレポジトリで公開されているもののようなのだが、これをVSCodeが利用できるようにするためにはpackage.jsonのdependenciesリストに対象のモジュールがリストされている必要がある(VSCodeは、ここにリストされているモジュール名をヒントにAutomatic Type Acquisitionという機能を使って型定義ファイルを自動で探しにいく。もしくはjsconfig.jsonというファイルに明示的に宣言することも可能だが、今回は省略する) すなわち、以下のコマンドを経由してthreeモジュールをインストールする。 $ npm…

docker-composeで既存のnetworkに接続する

docker-composeを利用してコンテナを起動した場合、通常だとdocker-compose.yml(プロジェクト)単位で 内部ネットワークが作成される。これを、例えば別のdocker-compose.ymlファイルから起動されたコンテナのnetworkの中でコンテナを作成するには、network設定をdocker-compose.yml内に記述する 既存のネットワークの一覧 $ docker network ls コマンドを実行すると、以下のようにネットワークの一覧が表示される。例ではexisting_nw_defaultに接続するとする。 $ docker network ls NETWORK ID NAME DRIVER a36b706eb5a6 bridge bridge 7ee0cd187fbd host host 39be267aeb70 existing_nw_default bridge bb39f75ad969 none null 既存のネットワークに接続するdocker-compose.ymlの例 デフォルトでexisting_nw_default内にコンテナを作成するには、docker-compose.yml内に以下のようなnetworkの記述を追加すれば良い。…

Raspbian with PIXEL閑環境で日本語環境の構築

Raspberry Piの情報を細かく追っているわけではないので、知らない間にバージョンアップしてPIXELというデスクトップ環境になっていました。正確には、深く考えずにsudo aptitude sage-upgradeして再起動したらいきなり変わっていてびびった。 ながらく初期インストールだけして放置していたRaspberry Pi初代(+ですらない!)を日本語かするときにPIXEL 以前の情報が多かったので、PIXEL環境で日本語入力ができるようになるまでのメモです。結論からいうと、すごく簡単になっているみたいです。 日本語フォントのインストールPIXELな環境からは初期で表示できるのかも?という情報もみたのですが、それをみたのがフォントをインストールした後でした…。まあ、減るもんでなしという感じでインストールしました。タカオフォントというのはIPAフォントの派生みたいです。 $ sudo aptitude install fonts-takao fcitx-mozc(インプットメソッド)のインストール界隈のブログ記事ではibus-anthyとかibus-mozcを入れてるケースが多かったけど、しらべるとibusは最近はあまりイケてなくてfcitxという系列が良いみたいなので、そちらを採用してみることにしました。なお、ibusとかfcitxというのがベースになるインプットメソッドで、変換エンジン(?)自体がAnthyとかmozcとか、という構成になるようです。なので選択肢としては、インプットメソッドとしてfcitxかibus、それぞれでの変換エンジンとしてanthyかmozcか、という考え方になるようです。このへんは正直よくわからん。 $ sudo aptitude install fcitx-mozc上記で、メインメニューの「設定」のところに「fcitx設定」とか「mozc設定」とかの項目が追加されるので、そこで諸々を設定します。(ターミナル上でim-configを実行する必要があるかもしれない) 日本語ターミナル(不要っぽい)上記同様にjfbtermというのを入れないとターミナルで日本語が出ないよ、という記事が多いのですが、PIXEL環境では不要でした。標準のターミナルはLXTerminal 0.2.0というやつでした。 あとはPIXEL以前の環境と同様、ロケールやタイムゾーンの設定、あとはフォントを上述のTAKAOフォントに変えてあげたりすればOKです。

ASUSのルーターでTimeMachineを利用する方法

ASUSのルーターRT-AC85UとWestern DigitalのWD Elements 2TBを購入して、TimeMachineバックアップを設定しようとしているメモ。 MacはEl Capitanな状態です。 HDD(WD Elements)をmacに接続し、「HFS+(ジャーナリング)」でフォーマット HDDをルーター(RT-AC85U)に接続 ルーターの管理画面からUSBアプリケーション>TimeMachineをONに設定する 本来Macのファインダーの「共有」にルーターの名称がでる、、はず 出なかったのでFinderの「移動>サーバに接続」から「afp://<ルーターのIPアドレス>を入力 「共有」の所にルーターが接続済みになって表示 TimeMachine環境設定にルーター上のBackups.backupdbが表示される 本来、4のところで共有に表示されるはずなんだけど出なかったので、これは別の問題だと思う。 古いAirmac Expressを2.5GHz帯に繋いでAirPlayも設定しているが、スピーカーのリストには出るけれど音が流れない(再生側を2.5GHz帯に接続すると音が鳴る)とかもあるので、なにかの設定がおかしいんだと思うけれど、これは別途調査することにする。 <追記> たぶん解決した。設定方法は以下。 http://blog.imho.jp/2016/11/asusmac.html

外部ディスクの修復をかける方法(Mac)

Mac(El Capitan)のTime Machine用の外部ディスクが不調になってしまったので、ディスク修復を試みました。 アプリケーション>ディスクユーティリティ>First Aid をまずは試みたのですが途中で中断されてしまうので。fsckコマンドを試す。 外部ディスクにfsckをかけるには、以下のようにします。 $ sudo fsck_hfs -fy /dev/disk1s2 fsck_hfsはHFSファイルシステムに対する修復で、-fでジャーナル機能が有効になっているボリュームにも修復を強制するようです。ディスクによりdisk1s2の部分は変わりますが、これはディスクユーティリティの情報で確認できるのでそれに応じて変更すれば良いと思います。 参考:http://superuser.com/questions/503759/how-to-run-fsck-on-an-external-drive-with-os-x p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ‘Source Code Pro’; color: #c1c1c1; background-color: #000000} span.s1…

肥大化したiTunesライブラリを劇的に容量削減する方法

macとiPhoneを使っていると、App Storeからダウンロードしたアプリがどんどん母艦のiTunesのライブラリに保存されていって、macのストレージを圧迫していることがあります。同期するときのアプリ選択も、数が増えすぎるとやりづらいです。 過去に一度だけダウンロードしたアプリや、ダウンロードしたけれどいまいちですぐに消してしまったアプリがずっとiTunesライブラリに残り続けているのは無駄なので、削除してしまうことをおすすめします。以下やりかた。 iTunesのバージョンは12.5.1.21でやってます。 まず、iTunesを起動します。 左上の再生ボタンの下あたりにあるプルダウンから、「App」を選択。 「ライブラリ」のリストから「App」を選ぶと、右側にライブラリに保存されているアプリの一覧があります。何年も前にダウンロードしたアプリなんかが、ずらっとでているはず。 不要なアプリを選択して、右クリック。「削除」を選択 「選択したAppをライブラリから削除しても良いですか?」という旨のダイアログが出るので、「Appを削除」を選択。 「選択したAppをゴミ箱に移動しますか?」というダイアログが出るので、容赦なく「ゴミ箱に入れる」を選択。 あとはFinderで通常どおり「ゴミ箱を空に」すればOKです。 最近ではアプリは一本数百MB以上あることもよくありますし、必要なものはApp Storeから随時ダウンロードすれば良いので、ローカルのipaは特に理由がない限り、マメに整理するのが良さそうですね。

Homebrewを使ったpyenvのセットアップ(El Captan+zsh)

Homebrewを使ったzsh+prezto環境でのpyenvの構築手順メモ。 1. pyenvのインストール $ brew update $ brew install pyenv 2. 環境変数の設定 .zshrcに以下の行を追加する。Preztoの場合はどこに独自設定を書けばいいんだろうと思ったんだけど、普通に.zshrcに書けばいいらしいからPreztoはあんまり関係なかった。 if which pyenv > /dev/null; then eval “$(pyenv init -)”; fi 3. python環境のインストール デフォルトで使えるバージョンはsystemのみ。 追加できるバージョンは以下で確認できる。 $ pyenv…