常磐 BATCH「お前たちの“.\venv\Scripts\activate”って、醜くないか?」
チラ裏ではありますが。
こういうバッチファイルを作って PATH を通しておくと venv をより直感的に扱えるようになるんじゃないかなあという提案です。
@echo off
IF "%~1" == "" (
set env_name=venv
) ELSE (
set env_name=%~1
)
IF NOT EXIST "./%env_name%/Scripts/activate" (
python -m venv %env_name%
call ./%env_name%/Scripts/activate
python -m pip install pip --upgrade
pip install setuptools --upgrade
) ELSE (
call ./%env_name%/Scripts/activate
)
使い方
説明するまでもないですが。
作業するディレクトリでvenv
と実行すると、バッチファイルが venv を呼び出して仮想環境を作成します。 一緒に pip と setuptools の更新も行ってくれます。
すでに仮想環境が存在する場合単にそれに入ります。
venv envname
のように引数を与えるとその名前で仮想環境を作成します。
余談
見ての通り、Python のバージョンの指定などはできないので、それを指定する必要がある場合は作成までは手作業で行う必要があるかな、と。 本体バージョンの管理は環境を分けたい理由のひとつなのにそれでいいのか?
ふつうバッチファイルではsetlocal
してpushd "%~dp0"
して呼び出し元を汚染しないようにしますが、それを逆手に取ってこれらを記述しないことで呼び出し元に対する処理を記述できるってことなんでしょうかね。(バッチわからないマン)
我が魔王のお言葉
「みんな瞬間瞬間を必死にコーディングしてるんだ! デコボコなのは当然だろ! それを醜いなんて言うな!」
リファクタリングしろ
Author And Source
この問題について(常磐 BATCH「お前たちの“.\venv\Scripts\activate”って、醜くないか?」), 我々は、より多くの情報をここで見つけました https://qiita.com/BlueRayi/items/b90b0cad6496d8efcd2a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .