Windows で cmd.exe 起動時に PATH を通す

Posted on Sun 19 January 2020 in misc

3月で Windows とはサヨナラするので、思い出につづっておこうと思います。

Python には、ディストリビューションが複数あります。公式の配布、 Anaconda 、 WinPython 。私が知っているだけでも、みっつあります。他は知りませんが公式の場合は、バージョンごとにインストール先のディレクトリが違います。

環境変数 PATH を設定した場合、複数ある python.exe を使い分けることができません。そこで、任意の Python に PATH を通しながら CLI を起動するショートカットを作りましょう。

ショートカットをつくる

コンテキストメニューなどでショートカットを作成します。設定するのはリンク先と作業フォルダです。

リンク先の設定 - PowerShell の場合

%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "$env:PATH = '%LOCALAPPDATA%\Programs\Python\Python38;%LOCALAPPDATA%\Programs\Python\Python38\Scripts;%PATH%'"

リンク先の設定 - cmd の場合

%windir%\System32\cmd.exe /K "set PATH=%LOCALAPPDATA%\Programs\Python\Python38;%LOCALAPPDATA%\Programs\Python\Python38\Scripts;%PATH%"

どちらも、公式の Python 3.8 の PATH です。他のバージョン、ディストリビューションの場合は変更してください。

作業フォルダの設定は %HOMEPATH% にします。起動時に開くディレクトリです。

…なんとなく Python にこじつけていますが、他の言語のインタプリタや、いろいろなコマンドラインツールでも同じようにすることができます。Java でも Node.js でも。バッチファイルを実行するようにしておいて、そのバッチファイルの中で環境変数を設定するのもありです。

しかし Python ランチャーがある

しかし、Python には、Python ランチャー(py.exe) があります。powershell でも cmd でも、開いて次のように打つとバージョンが表示されるはず。

py -V

Python ランチャーは PATH の通っているところにインストールされます。 .py ファイルも Python ランチャーに関連付けされています。

そもそも Python は PATH を通す必要がありません。少なくとも私自身は、通さずに困ったことはありません。書くだけ書いておいてなんですが、先述のショートカットも使ってません。