python

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するときのオプションであったほうが便利そうな気もする。…

pyenvとpyenv-virtualenvで任意のpython環境に切り替える(homebrew使用)

pyenvを使って任意のPythonバージョンを利用できるようにする。 さらに、pyenv-virtualenv(pyenvのプラグインということらしい)で、同一のPythonバージョン化でも任意のpython実行環境が管理できるようにする。これはpipとかでライブラリをインストールする場合に便利だろう。 homebrewを使ってインストールすることにする。 pyenvのインストール$ brew install pyenv pyenv-virtualenvのインストール$ brew install pyenv-virtualenv インストール自体は上記で終了。続いてPATH環境変数などを書き換える必要があるが、これは初期設定のスクリプトファイル(zshなら.zshrc)に以下の行を追記すれば良い if which pyenv > /dev/null; then eval “$(pyenv init -)”; fiif which pyenv-virtualenv > /dev/null; then eval “$(pyenv…

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…

dotcloudでDjango

dotcloudのチュートリアルでDjango + Mongo DBがうまく動かなかったのでメモ的に書いとく。 単にチュートリアルが古いだけなのでそのうち修正されるんだと思う。 http://docs.dotcloud.com/tutorials/python/django-mongodb/ このドキュメントの、requirements.txtの部分の記述が古くて、うまくdotcloud pushできない(エラーをよく見ると、django-mongodb-engineがgithubからpullできてないみたい)。これを、 このように書くとうまくデプロイできる。

OSXのPastorのexportをKeePassX XML形式に変換するスクリプト

以前のエントリで書いたけど、KeePassならWin/Mac以外にもiPhoneとかからも使えるのでパスワード忘れて困った!ということが基本的に無くなって便利なので乗りかえました。移行のときに、OSXのパスワード管理ソフトPastorの書き出したtsvをKeePassXで読み込めるXML形式にコンバートするPythonスクリプトを書きました。 この手のやつどこに上げたもんかと思ってたんだけど、さっきgistというものの存在を知ったので使って公開してみます。これ便利だな。