らんだむな記憶

blogというものを体験してみようか!的なー

複数のvenvを同時に駆動したい

ツール1は venv1 内で、ツール2は venv2 内で駆動したいことがある。(全部 pip すると、requirements.txt の依存バージョンが矛盾するとかの事情)
tensorflow - Can you activate multiple Python virtual environments at once? - Stack Overflow
を見るとスマートな解決は見られない。一瞬だけ venv を切り替えられると良いのかな・・・。
venv2 の側のツールは setup.py entry_points で導入される“コマンドラインツール”を叩くだけにすれば良いか?
source /path/to/venv1/bin/activate しておいて、venv2 の機能が使いたい時は、subprocess.Popen で venv2 内の“コマンドラインツール”を叩くようにすればツール1は venv1 内のインタープリタと site-packages を使い、ツール2は venv2 内のインタープリタと site-packages を使うようにできるかも。
この場合、export PATH=$PATH:/path/to/venv2/bin しておけば通常は venv1 のインタープリタが参照されるはず。venv2 のツールの起動時には、entry_points で導入されるラッパーアプリ内の shebang が venv2 のインタープリタを明示的に参照しているので、venv2 のインタープリタを参照するはず。