ラベル howto の投稿を表示しています。 すべての投稿を表示
ラベル howto の投稿を表示しています。 すべての投稿を表示

2018年10月6日土曜日

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

2018年9月23日日曜日

Pythonの環境構築にpipenvを使う

pipenvというPythonの仮想環境構築ツールを使い始めました。詳細は公式を見れば良いとして分かりづらかったところのメモ書き。

Pipenv: 人間のためのPython開発ワークフロー

書いている時点のバージョンは以下
$ pipenv --version
pipenv, 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するときのオプションであったほうが便利そうな気もする。

カレントディレクトリにPipfileを作成してくれて、pipenv経由でパッケージをインストールするとPipfileの更新なども同時にやってくれる。これまでだとpip freezeとかいちいちしないといけなかった部分が、PHPでいうところのcomposerみたいな感じになっているということ、なんだと思った。

9/21追記:任意のディレクトリでpipenv shellして環境が作成されたあと、そのディレクトリを別のパスに移動したあとにpipenv shellすると新規のvirtualenvが作成される、元の場所に戻すと前のvirtualenvに戻れるので、やはりsuffixのハッシュはカレントディレクトと連動している模様。

virtualenvから抜けるには

pipenv shellした環境はvirtualenvでsource activateした場合と違ってサブシェル中で動作しているようなので、環境を抜けるにはCtrl+Dかexitする必要がある。deactivateしてしまうとvirtualenvな環境からは実質抜けてるけどpipenvが起動したサブシェルからは抜けられないみたいな中途半端な状態になってしまうので注意する。

環境の削除

普通のvirtualenvなので、上記の~/.local/share/virutualenv/配下の該当ディレクトリを丸ごと削除すれば良さそうだけど、もしくはpipenv shellしたのと同じディレクトリでpipenv --rmとすれば対応する環境は削除される。

その他

繰り返しだが作成されるのは普通のvirtualenvなので、
$ source ~/.local/share/virtualenv/hogehoge/bin/activate
とかすれば任意のディレクトリで特定のvirtualenvに入ることもできる。

2017年5月6日土曜日

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 install three --save
--saveオプションを忘れるとpackage.jsonが更新されないので注意する。--saveオプションは指定したモジュールをインストールすると共に、package.jsonのdependenciesリストに追加する。

 動作確認

以上でIntelliSenseは有効な状態となります。自分のモジュールの場合はどうするのかとかは今後調べる必要があるが、たぶんTypeScriptとかで書けということなんだと思う。

main.jsとかの適当なファイルを作成して、
var THREE = require('three');
THREE.
ここまでタイプしてCtl+Spaceとかすると、THREEの中にあるモジュールが補完対象としてリストされるようになっているはず。もしくは、.をタイプした時点で出てくるはず。これで暗記しなくてよろしい。

2016年12月25日日曜日

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の記述を追加すれば良い。
networks:
  default:
    external:
      name: existing_nw_default
 参照:https://docs.docker.com/compose/networking/

2016年12月18日日曜日

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

 Raspberry Piの情報を細かく追っているわけではないので、知らない間にバージョンアップしてPIXELというデスクトップ環境になっていました。正確には、深く考えずにsudo aptitude sage-upgradeして再起動したらいきなり変わっていてびびった。

ながらく初期インストールだけして放置していたRaspberry Pi初代(+ですらない!)を日本語かするときにPIXEL 以前の情報が多かったので、PIXEL環境で日本語入力ができるようになるまでのメモです。結論からいうと、すごく簡単になっているみたいです。

  1. 日本語フォントのインストール
    PIXELな環境からは初期で表示できるのかも?という情報もみたのですが、それをみたのがフォントをインストールした後でした...。まあ、減るもんでなしという感じでインストールしました。タカオフォントというのはIPAフォントの派生みたいです。

    $ sudo aptitude install fonts-takao 
  2. 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を実行する必要があるかもしれない)
  3. 日本語ターミナル(不要っぽい)
    上記同様にjfbtermというのを入れないとターミナルで日本語が出ないよ、という記事が多いのですが、PIXEL環境では不要でした。標準のターミナルはLXTerminal 0.2.0というやつでした。 
あとはPIXEL以前の環境と同様、ロケールやタイムゾーンの設定、あとはフォントを上述のTAKAOフォントに変えてあげたりすればOKです。

2016年11月16日水曜日

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

ASUSのルーターRT-AC85UとWestern DigitalのWD Elements 2TBを購入して、TimeMachineバックアップを設定しようとしているメモ。

MacはEl Capitanな状態です。

  1. HDD(WD Elements)をmacに接続し、「HFS+(ジャーナリング)」でフォーマット
  2. HDDをルーター(RT-AC85U)に接続
  3. ルーターの管理画面からUSBアプリケーション>TimeMachineをONに設定する
  4. 本来Macのファインダーの「共有」にルーターの名称がでる、、はず
  5. 出なかったのでFinderの「移動>サーバに接続」から「afp://<ルーターのIPアドレス>を入力
  6. 「共有」の所にルーターが接続済みになって表示
  7. TimeMachine環境設定にルーター上のBackups.backupdbが表示される
本来、4のところで共有に表示されるはずなんだけど出なかったので、これは別の問題だと思う。
古いAirmac Expressを2.5GHz帯に繋いでAirPlayも設定しているが、スピーカーのリストには出るけれど音が流れない(再生側を2.5GHz帯に接続すると音が鳴る)とかもあるので、なにかの設定がおかしいんだと思うけれど、これは別途調査することにする。

<追記>
たぶん解決した。設定方法は以下。
http://blog.imho.jp/2016/11/asusmac.html

2016年11月10日木曜日

外部ディスクの修復をかける方法(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

2016年11月9日水曜日

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

macとiPhoneを使っていると、App Storeからダウンロードしたアプリがどんどん母艦のiTunesのライブラリに保存されていって、macのストレージを圧迫していることがあります。同期するときのアプリ選択も、数が増えすぎるとやりづらいです。

過去に一度だけダウンロードしたアプリや、ダウンロードしたけれどいまいちですぐに消してしまったアプリがずっとiTunesライブラリに残り続けているのは無駄なので、削除してしまうことをおすすめします。以下やりかた。
iTunesのバージョンは12.5.1.21でやってます。

  1. まず、iTunesを起動します。
  2. 左上の再生ボタンの下あたりにあるプルダウンから、「App」を選択。
  3. 「ライブラリ」のリストから「App」を選ぶと、右側にライブラリに保存されているアプリの一覧があります。何年も前にダウンロードしたアプリなんかが、ずらっとでているはず。
  4. 不要なアプリを選択して、右クリック。「削除」を選択
  5. 「選択したAppをライブラリから削除しても良いですか?」という旨のダイアログが出るので、「Appを削除」を選択。
  6. 「選択したAppをゴミ箱に移動しますか?」というダイアログが出るので、容赦なく「ゴミ箱に入れる」を選択。
  7. あとはFinderで通常どおり「ゴミ箱を空に」すればOKです。
最近ではアプリは一本数百MB以上あることもよくありますし、必要なものはApp Storeから随時ダウンロードすれば良いので、ローカルのipaは特に理由がない限り、マメに整理するのが良さそうですね。

2016年11月2日水曜日

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 install -l
で確認したあと、
$ pyenv install 2.7.12
みたいにして任意のバージョンをインストールする。 pyenv環境にインストールすみのバージョンは
$ pyenv versions
で確認できる。 任意のディレクトリで
$ pyenv local 2.7.12
のようにすると、そのディレクトリに.python-versionというファイルが作られ、これが反映されてそのディレクトリ内でpythonコマンドを実行した時だけそのバージョンのPythonで実行されるようになり、ディレクトリを抜けるとglobalなpythonのバージョンに自動で切り替わる。globalなバージョンを変更するときは
$ pyenv global 2.7.12
とすると、ローカルに.python-versionがないディレクトリで実行される(globalな)pythonのバージョンを設定できる。

pyenv installでエラーになるときの対応

macOS(正確にはEl Capitan)のpyenvで特定のバージョンのpythonをインストールしようとしたときにエラーになることがありました。曰く:

$ pyenv install 2.7.12                                                                                                               +[master]Downloading Python-2.7.12.tar.xz...-> https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xzInstalling Python-2.7.12...ERROR: The Python zlib extension was not compiled. Missing the zlib?
Please consult to the Wiki page to fix the problem.https://github.com/yyuu/pyenv/wiki/Common-build-problems

調べると、 zlibのヘッダが見つかってないのでCFLAGS環境変数を設定するか、xcode-select --install を実行してXCodeコマンドラインツールを再度設定するとのこと(OSをアップグレードした後とかは必要だそう)。

今回はxcode-selectのほうを試して正常にインストールできるようになりました。
$ xcode-select --install   
として出てくるダイアログ経由でXcodeのコマンドラインツールをインストールしたあと、
$ pyenv install 2.7.12                                                                                                               +[master]Downloading Python-2.7.12.tar.xz...-> https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xzInstalling Python-2.7.12...Installed Python-2.7.12 to /Users/Kurosawa_Hiroyuki/.pyenv/versions/2.7.12 

としてインストールが成功するようになりました。

2015年8月20日木曜日

Google Chrome 44でユーザ切り替えメニューを左上に戻す

以前の chrome://flags からは "enable-new-avatar-menu" の項目が消されてしまっていたので超不便になった。

chrome.exeの起動オプションで指定すれば依然、無効化することが可能
"<Chromeのパス>\chrome.exe" --disable-new-avatar-menu

2015年6月26日金曜日

Symfony2でテーブルからEntityを生成する方法

1.テーブルを作成・変更
 2.テーブルからマッピング情報を生成
$ app/console doctrine:mapping:import yml 
3.マッピング情報からEntityを生成 
$ app/console doctrine:generate:entities 
4.crudを生成 
$ app/console doctrine:generate:crud 
すでに存在する場合は--overwriteオプションで上書き

2014年12月8日月曜日

OSX Yosemiteの要点だけ:Windowsから共有フォルダに接続できなくなった

OSX Yosemiteにして以降、Windows (7) から急に共有フォルダへのログインができなくなり、
色々検索してみると、OSX側のSambaのバージョン(?)が変更されたことが原因の模様。

対処は、Windows側の「Lan Manager認証レベル」というのを変更することで接続できるようになった。

以下Windows側での操作。
(1)スタート>コントロールパネル をクリック
(2)システムとセキュリティ>管理ツール をクリック
(3)ローカル セキュリティ ポリシー をダブルクリック
   →ローカル セキュリティ ポリシーのウインドウが開く
(4)左ペインからローカルポリシー>セキュリティ オプションを選択
(5)右ペインから「ネットワーク セキュリティ: LAN Manager 認証レベル」をダブルクリック
(6)プルダウンから「LTLMv2 応答のみ送信する」を選択
(7)適用

以上の設定変更でログイン可能になった。

参照: https://discussions.apple.com/thread/6613032

2014年12月4日木曜日

Aptana Studioの要点だけ:Yosemiteで起動しなくなったとき

OSX YosemiteにしてからAptana Studioが起動しなくなったので、対処法を調べました。エラーは以下
The JVM shared library "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib"
does not contain the JNI_CreateJavaVM symbol.
以下のリンクからJava for OSXをインストールすると起動した。
http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US

2014年11月9日日曜日

Windows 7にEmacs 24をインストールする方法の要点だけ

Meadowが更新されてないのでWindowsではEmacsを使ってなかったんだけど公式でWindowsバイナリを配布してるらしいことを知ったのでEmacs 24を入れました。

ただし、以下の「公式」からDLしたバイナリはWindows 7環境下でのIMEと相性が悪い(?)らしく日本語入力中になにも表示されない(確定して始めて表示される)状態なので、下のGNUPACKからパッチ適用済みのバイナリを入手した。

公式 http://ftp.gnu.org/gnu/emacs/windows/
GNUPACK http://sourceforge.jp/projects/gnupack/

設定ファイルはデフォルトでは
C:\Users\<ユーザ名>\AppData\Roaming\.emacs.d
におくことになる。このフォルダはExplorer上では隠しファイルになっている。
Windows 7で隠しファイルを開くにはフォルダを開いた状態でAlt押下→メニューが表示される→ツール>フォルダオプション>表示>ファイルとフォルダーの表示
で、表示方法を切り替える。

設定ファイルの置き場所をEmacsのホームディレクトリにしたいけどそれは別途調べる。
調べた↓
レジストリエディタを開いて、以下のキーにEmacsのホームにしたいディレクトリを設定すれば良い。ちなみにHKCUは現在のログインユーザでだけ有効なキー。

HKCU\SOFTWARE\GNU\Emacs\HOME

参照:
http://d.hatena.ne.jp/faw/20090203/1233628200

2014年10月28日火曜日

Emacsの要点だけ:環境変数(?)を確認する

M-x describe-variables
をすると、変数名の入力を促される。補完候補が出るのでたとえばそのままTabを押せば候補が全て表示される。初期設定系はdefault-*の名前になっている模様。

Emacsの要点だけ:diredのデフォルトディレクトリを設定する

init.elなどに
(setq default-directory "/YOUR/PREFFERED/PATH")
と書いておけば反映される。

もちろんC-x-eとかで直接実行してもOK。

2014年10月24日金曜日

Raspberry Piの要点だけ:Raspbian+ShairPortでAirPlay対応にする

Raspberry PiをAirPlay対応にした記録。
構成はRaspberry Pi typeB、HDMIはTV、アナログ出力はアンプのLINE INに接続してあって、今回はLINEからオーディオを流したい(HDMIはそのうちビデオもストリーミングしたいと思っているのでつないでいるけど、今回は音声のみ)。

2014/10/21〜22日頃時点の情報です。

  1. システムをアップデート
  2. 必要パッケージをダウンロード
    https://github.com/abrasive/shairport に書いてあるものを素直にインストールする。
  3. ShairPortのソースをgithubからclone、./configure&make&make install
  4. オーディオ出力の設定
    ネットを調べるとあまりこの手順は書いてなかったけど、出力先を明示的に設定する必要があった。
  5. 自動起動の設定
    Raspbianの場合はdebian用のスクリプトが用意してあるのでコピーする。
    AP_NAMEのところだけ設定すれば良かった。
    あと、init.d/shairportのファイルに書いてあるようにユーザとグループは追加した。
  6. 起動
    Debianのことはよく分からないけど上記まで設定したらsudo /etc/init.d/shairport start でデーモン起動する。
  7. おまけ:OSXでOptionキーを押しながらメニューバーのサウンドアイコン(普通ボリューム調整できるやつ)をクリックすると音声の入出力先が切り替えることができる。

全体をまとめたのが以下。

2014年9月19日金曜日

Xcodeの要点だけ 古いバージョンのXcodeを手に入れる

App StoreからXcodeを入れていると強制的にXcodeがアップデートされてしまって困る!というのも多いはず。Xcode 6系でビルドするとiOS8(iPhone 6?)での挙動が大きく変わったりするから余計悩ましい。

developer centerからだと最新版のXcodeへのリンク(というかApp Storeへのリンク)しか見つからないけど、以下にアクセスすれば過去のバージョンのXcodeも入手できる。

https://developer.apple.com/downloads/index.action

2014年8月31日日曜日

cocos2d-xの要点だけ Android NDK r10を使うべきではないという話

前のポストでも触れたけど、Android NDK r10でcocos2d-xを使おうとすると色々と問題が多い模様。 公式にも結論:r10は使わずr9を使えというのが出ていた。 参考リンク http://www.cocos2d-x.org/news/307 上記公式にも出ているAndroid NDK r9のDL先。 linux: http://dl.google.com/android/ndk/android-ndk-r9-linux-x86.tar.bz2 windows: http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip mac os x: https://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86_64.tar.bz2