雑記

昨日の記事で以下を実行できるようになったが、なぜ PyPI から pipenv で入れたときは動かなかったのか、pipenv で fast_transoformers は管理できないのか。

$ python
>>> import fast_transformers.causal_product.causal_product_cuda


適当なディレクトリに pipenv 環境を構築し、pytorch-fast-transformers を PyPI からインストールし、~/.local/share/virtualenvs/ 以下をみてみる。causal_product.causal_product_cpu しかない。causal_product.causal_product_cuda が import できないのは当然である。実際 _cuda は import できず _cpu は import できる。

$ pipenv install pytorch-fast-transformers
$ ls ~/.local/share/virtualenvs/20220502_sandbox-j2IpnJRo/lib/python3.8/site-packages/fast_transformers/causal_product/
__init__.py  __pycache__  causal_product_cpu.cpython-38-x86_64-linux-gnu.so


先の pipenv 環境を一旦削除し、今度は pytorch-fast-transformers を GitHub からインストールする。と、今度は PyTorch が必要だと怒られるので先に PyTorch を入れる。→ ことをしたかったが Pipfile の Lock が終わらない。

$ pipenv install "https://download.pytorch.org/whl/cu115/torch-1.11.0%2Bcu115-cp38-cp38-linux_x86_64.whl"
$ pipenv install git+https://github.com/idiap/fast-transformers.git#egg=pytorch-fast-transformers
$ ls ~/.local/share/virtualenvs/20220502_sandbox-j2IpnJRo/lib/python3.8/site-packages/fast_transformers/causal_product/