Windowsで管理者権限なしでpythonコマンドを使えるようにする
投稿日:
環境
- Windows 11
- git bash
- Python 3.12.4
背景
仕事で利用しているPCは管理者権限が貰えないのですが、Pythonを使う必要があったため
管理者権限不要でPythonを使える環境を用意しました。
手順
エンベデッド Pythonのダウンロード
以下サイトにてPythonのダウンロードができるので『Windows embeddable package』をダウンロードします。
https://www.python.org/downloads/release/python-3124/
ダウンロードしたZIPファイルを任意のフォルダに解凍し、その中にあるpython312._pth
を修正します。
1行コメントアウトを外すだけです。
■修正前
# import site
■修正後
import site
続いてpythonコマンドにパスを通します。
管理者権限がなくても以下よりPathの設定が可能です。
コントロールパネル
を開くユーザーアカウント
を開く- さらに
ユーザーアカウント
を開く - 左メニューにある
環境変数の変更
を開く - ユーザー環境変数内にある
Path
を編集し、今回配置したフォルダとそこのScripts配下を追加する。- 追加例: pythonをC:¥toolsフォルダの下に解凍した場合は以下2つを追加する。
- C:¥tools¥python-3.12.4-embed-amd64
- C:¥tools¥python-3.12.4-embed-amd64¥Scripts
- 優先度を高めるために「上へ」ボタンで上部に持っていっておくこと
- 追加例: pythonをC:¥toolsフォルダの下に解凍した場合は以下2つを追加する。
これでPCを再起動すればpythonコマンドが利用可能となっています。
pipコマンドのインストール
次にpipコマンドを利用できるようにします。
まず以下のファイルをpython-3.12.4-embed-amd64フォルダにダウンロードします。
https://bootstrap.pypa.io/get-pip.py
次に、以下コマンドを実行します。
trusted-hostオプションを付けないとエラーとなるのでご注意ください。
$ cd 配置したパス/python-3.12.4-embed-amd64
$ python get-pip.py --trusted-host=files.pythonhosted.org --trusted-host=pypi.org
カレントディレクトリ配下にScriptsフォルダが作られ、そこにpip.exeが生成されます。
すでに前手順でPathには追加済みなので、Path追加は不要です。
これでpython
およびpip
コマンドが利用できるようになりました。
管理者権限が無いPCという事はセキュアな情報を扱うPCだと思うので、常識の範囲&自己責任の範囲でご利用ください。
おまけ:aws cliのインストール
pipが使えると、実はaws cliもインストールできます。
以下コマンドでpip.exeと同じフォルダにawsコマンドが生成されます。
$ pip install awscli
トラブルシューティング
① get-pip.py実行エラー
get-pip.pyをそのまま実行すると以下のようなエラーが発生します。
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)'))': /simple/pip/
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)'))) - skipping
ERROR: Could not find a version that satisfies the requirement pip (from versions: none)
ERROR: No matching distribution found for pip
これはSSL証明書のエラーが発生しているので、上記手順の通りtrusted-host
オプションを付けて実行しましょう。
②pipが無いエラー
pipコマンド実行時に以下エラーが発生する場合があります。
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\tools\python-3.12.4-embed-amd64\Scripts\pip.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'
上記手順の通りpython312._pth
にてsiteをimportするようにすれば解決します。