pipevnももう古くてpoetryらしいよ・・・
pipenvですごい!新世代!快適!!
と思ってたらもうpoetryの時代らしい。
【Python】Poetry始めてみた & Pipenv から poetry へ移行した所感 - Qiita
早速導入してみたんですが、確かにほぼほぼpipenvと同等のことはできて、あと初期プロジェクト設定とかが(testとかも込みで)作れてよいっぽい。
インストール、アンインストールもシステム全体に依存しないで $HOME/.poetryに保存されるだけっぽいし。実によろしそう。
ということで乗り換えたので、以下使い方コマンドのメモ書き
導入
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
$ source .zshrc
仮想環境をつくる
まず、pyenvで元となるpythonを決めて、pyenv localでそのディレクトリ専用の設定にする。
そののち、空のディレクトリにpoetry環境つくるときは new, 既存ディレクトリに設定するときは init.
$ poetry new new-package # カレントディレクトリの下にnew-packageディレクトリができる
$ poetry init # カレントディレクトリに仮想環境が追加される
newすると、pyproject.tomlという依存関係をまとめるhuman readable fileとReadMe, パッケージディレクトリ(my-package)、テストディレクトリが作成される。
initの場合は対話的にpyprojectl.tomlを作れるみたい。
そのあと、installでpyprojectltomlに書いてある依存ライブラリをインストールする。
$ poetry install
仮想環境シェルを起動する
$ poetry shell
終わるときは単純に $ exit
仮想環境にライブラリ足す
$ poetry add numpy
--dry-runで、実際にインストールしないでアップデートの状況を見ることもできる
VS code: 便利なプラグイン(自分用メモ)
マシン取り換えるときとかにVSCodeで入れておきたいやつをメモしていくよ
環境整備
- emacs keymap improved
- japanese language pack for visual studio code
- vscode-icons これは超おすすめ!
- なんというか、快適度?が段違い。
リモート・仮想環境
- Remote Development これは(今の仕事環境的に)最強に近い。
- kubernetes podにも直接つなげてVS Code内でファイル編集もterminalも立ち上がっちゃう。
- Remote - WSL, SSH, ...などが入る
プログラミング支援
- YAML
- Bracket Pair Colorizer
- Rainbow CSV
- Python
- Python Docstring Generator 便利
- ""書いて補完される。べんり。
- Jupyter
- X環境立ち上げなくてもVSCodeの中で絵が見れるのは助かる。特にRemote/Podと組み合わせると最 of 高
VS CodeでGUIなjuyputer notebook + WSL interpreter
が使えるよっていう。なんと、WSL2のターミナルからVSCodeを起動できる。そして、VSCodeがjupyter notebookをサポートしてる。
参考
前提
VSCode: python plugin, remote development pluginをインストールしておく(普通してる)
WSL2: ubutu 18をいれてます。pipenvもいれておきます
WSL2上の作業
作業ディレクトリでpipenv環境を作ります
$ pipenv --python 3
あるいは
$ pipenv shell でもよさげ
jupyterと、ipykernelっていうのが必要になります
$ pipenv install jupyter ipykernel
終わったらvscodeをコール。
$ code .
VSCode側の作業
新規windowsがWSLにremoteでつないでpython interpreterを使える状態にあることを確認します。左下の部分が緑色に光ってWSL:ubutu-18.04ってなれば多分つながってる
Ctrl + shit + pでコマンド窓を立てて、jupyterとかするとjupyter notebookを新規作成みたいなのが補完されるので選択すると動きます、簡単だな。。。。
Texの章の出方をかえる
\appendix
\def\thesection{Appendix~\Alph{section}}
\def\thesubsection{\Alph{section}.\arabic{subsection}}
こうすると、sectionは Appendix A, Appendix B, ...ってなって
subsectionは A.1, A.2,..., B.1, B.2, ...ってなるってtexじいさんが言ってた!
今はpyenv + pipenv!
virtualenvとかcondaとか使わなくなったらしいよ。。。
ちょっと使ってみましたが、たしかにpipenvわかりやすいです。どこでもなんでもpipenv install でディレクトリごとの仮想環境がつくれて、pipenv shellで仮想環境立ち上げて、pipenv installで仮想環境内でモジュール管理しながらもじゅーつ追加できる。
環境はWindows10 WSL2 + ubuntu18です
pyenvインストール
いろいろなところに書いてある通りにインストールしますが、そのまえにlibffiが必要です。これがないとpipenvがエラーはいてうごきません。
sudo apt install libffi-dev
pyenvをインストールして
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
以下をrcファイルに書き足します
export PATH="/home/<user>/.pyenv/bin:$PATH"
eval "$(pyenv init - zsh --no-rehash)"
じゃあ、pyenvで何かpythonインタプリタをインストールします。
pyenv install 3.8.5
pyenv global 3.8.5
pipenvインストール
インストールはpipで終わりです
pip install pipenv
試しにディレクトリほって環境を作ってみます。
mkdir hoge
cd hoge
pipenv install --python 3.8.1 <-- pyenvとは違うインタプリタもいけてしまう
pipenv shell <-- 仮想環境を起動
(hoge) pipenv install boto3 <== boto3モジュールを3.8.1にインストール
これで、hogeディレクトリ内のpython仮想環境にはboto3入りの3.8.1ができますが、それ以外のディレクトリや、pipenvを起動していない状態のhogeディレクトリではboto3なしの3.8.5がインタプリタになります。
参考
【Ubuntu 18.04】pyenv+pipenvでPython環境構築 - Qiita
Pyenv と Pipenv で Python 環境を構築する - Qiita
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。 - Qiita
Zoteroの使い方(我流、逐次更新)
Mendeley+DropBoxで運用していたんですが、PC移行のときから調子が悪くなったのでずっと乗り換えたいと思っていました。
で、Twitterで相談したら、"Zoteroいいよ"ということなので、早速導入始めています。
自分の導入過程のメモ書きも兼ねているので、逐次更新です
Zotero?
Opensourceの文献管理ソフトウェア?ぽい
導入にあたって、以下の記事を参照しています~
目標要件
クラウドストレージにPDF本体を大量に保存
zoteroのサーバには文献DB情報のみを格納させる
クラウドストレージのパスを適切に参照させることで、将来的にPCを移行しても苦労しないですむようにする
当然Overleafとかようのbibは必要
インストール
まずは何も考えずに公式サイトからstand aloneのバイナリをダウンロードして展開。何も問題なくインストールされる。あ、いきなり日本語でした。素晴らしい
Zotfile
Zotfileってのは上記3リンクいずれもおすすめしているので導入する。
指摘したディレクトリ構造を維持するように、文献アイテムに添付したPDFをrenameしてmvしてmkdirしてくれる。
https://ohdachi.github.io/ohdachi_lab/researches/2018/02/02/zotero_zotfile.html
にあったように、zotfile preferenceの"Use subfolder defined by"に/%w/%yと書いた。これで雑誌-発行年というディレクトリになるはず・・・ならなかった。あー、これマックだ。Windowsの場合は\%w\%yと書く。
嫌な感じのディレクトリでも、設定を変えて再度renameすると勝手にPDFを移動してくれる。つまり、この機能を使うと、取得したPDFを適切なディレクトリ(私の場合はGoogle drive)に移動して名前を変える手間がなくなる、ということかな?
- 書誌情報をzoteroに登録
- PDFを落としてきて、添付ファイルとしてリンク。落とす場所はどこでも良い。
- すかさず右クリックでzotfile rename
下記のchrome extensionを使うともっと楽になるのかも?
あーちょっとがっかりポイント
文献管理とノート整理に Zotero が最適だった - 博士以前
にあるように、論文/Projectごとにサブフォルダ(コレクション、と呼ばれる)を切って、それぞれにPDFを登録するようにしたい。この場合、zotfileのsubfolder設定は\%cとなる
ただ、一つの論文が複数のProjectに入る可能性が十分あるので、一つの文献アイテムと対応するリンクが複数のコレクションに入ってほしいんだけど、それは無理っぽいな?
一つのPDFは一つのサブフォルダにしか置けない。
ただ、文献アイテムを複数のサブフォルダに登録することは問題ないようだ。
zoteroが正しく機能していれば、PDFのありか自体は気にしない(直接探しに行かない)のが正しい運用っぽい。
ふむー。そうすると/%cとかするよりは年数とかで分けたほうがいいような
ガッカリポイント2
あと、名前決めるときにjournal名はみてくれるけどproceedingはみてくれないのか?設定でなんとかできないのかなーICMLとか出てくれないと困る。
とりあえず、文献アイテム登録時にpublisherにICMLとかの会議略称書いてしまえば運用できるけど、それって嘘bibtexの元だなぁ・・・
ちゃんと設定できたよ!
zotfile preferences --> renameing rulesにPDFのファイル名自体のrename規則を指定するところがある。
{%a_}{%y_}{%j_}{%t}
とすると、第一著者_発行年_書誌名(proceedingsもOK)_タイトル.pdf
としてくれる。最高か!
ただ、proceedingsの会議略称名はつけられないぽい。
あと、ディレクトリ名には会議名がでてこないのかな・・・昨夜出てきた気がするんだけど、なんだったんだ・・
ここが解決出来れ場完璧なので、できれば自分でrename jsonをいじりたいんだけど、いじり方が分からない(JSONファイルにアクセスできない)
ディレクトリに振り分ける際に、%jを使ったら、会議名しっかりそろえる機運になるかもしれないな?
Chrome addon
Zoteroをインストールしたら、勝手にaddonのインストールをお勧めされたのでインストールした。
早速つかってみました。
試しにICLRのOpenReviewで、アドオンボタンをポチっとしてみる。
おお。。。リンクされてるPDFまで一緒に保存されたぞ
このあとrenameすれば保存用google driveに整理されて保存されるっつう寸法!
すごい・・・
Better Bbitext
文献管理ソフト Zotero ~ 設定編~ - humosy’s blog
これは必要そうなので導入
ToDo
chrome addon つかう
Overleafとの連携; https://libanswers.caltech.edu/faq/204206
今更だけど、chaier trainer + optunaで探索枝かりするとき
こんなのが出た直後でなんですが、OPTUNAは今後も開発継続されます!
で、まあchainerはわかりやすいしdocもかなり充実してるので、メンテナンスモードはいってもしばらくは使われると思います。
そこで、chainer + optuna prunerの使い方。
生コードの実例だと、trainerじゃなくてちょくせつepoch回して、pruningの基準となる量をtrialに報告してるけど、まあtrainer使うよね・・・
そのときどーすんの?とおもったけど、
Integration moduleを使えばよいっぽい。