HyTouch - Pythonのローカルパッケージインストーラー作った

Pythonでもpackage.jsonがあってnpm iしたらローカルインストールしてくれる感じのものが欲しかった。これまで機械学習用の環境構築はDockerに閉じ込めていたのだけれど、必要なパッケージを追加して行った結果いい感じに熟成してしまったDockerfileを見てDockerfile以外の解決法が欲しくなった。

作ったもの

HyTouch https://pypi.org/project/hytouch/
基本的な使い方などはGitHubで https://github.com/tackman/HyTouch

pip install hytouch でインストールできると思います。

概要

Python上で実行されるLisp方言、Hyを利用したPythonローカルパッケージインストーラ&タスクランナー。プロジェクトディレクトリにpackage.hyファイルを置いて

hytouch install

とすると、プロジェクトディレクトリ内の.hytouchにインストールしてくれる。

hytouch run task-name

でいろいろ実行可能。

検証環境

Arch Linux/ Python 3.7

Pythonバージョンに関しては3.7でハードコードしているので、これ以外では確定で動かないと思います。OSに関してはUNIX-likeなCLI上では多分動くはず。生のWindodwsは知らない子なので、WSL使ってください。

virtualenvについて

Pythonで環境保持といえばvirtualenvが一番メジャーだけれど、毎回activateコマンド打つのはダルいしプロジェクト単位での依存性がプロジェクト内で閉じてくれない感じがしてイヤだった。あと手なりでやると環境構築がコード化されない(package.json相当の標準的なものがない)のがつらい。

オチ

これでPythonの依存性管理もできるじゃん!わたし天才!と思ったけれど、ディープの環境構築で2番目に闇なCUDA導入まわりが全く解決しないことにHyTouchを作ってから気づいた(1番目はGPUのドライバ)。そもそもnvidia-docker利用をしている理由の95%くらいがCUDAまわりの環境汚染が嫌だったからなので、ここがなんともならない以上Dockerから離れられる理由がなかったのです。

HyTouch自体は別の機会に使えるとは思うので、何かの機会に活用してあげたい。

コメント

このブログの人気の投稿

百合紅のインストについての私見

ホスト名にア○カツ!の登場人物の名前をつける生活

行列のできるパスタ屋さんゲーム