見出し画像

Python勉強記【付録】Users権限のみでPython導入を試す(1)

本記事の目標

今回は少し寄り道をして、チャレンジをしてみたいと思います。
Users権限のみでPython開発環境を構築できる方法を試します。管理者権限が使用できない環境のPCを想定しています。

最低限、以下の2つの条件を満たすことが必要と思います。

1.Users権限で導入可能

Users権限とは、Windowsの管理者グループ(Administrators)には属さないがUsersグループに属するユーザーが持つ権限のことです。Users権限を持つユーザーは、ユーザープロファイル領域(C:¥users¥username¥)以外の場所にあるファイルやフォルダに対して自由に読み書きすることはできず、アプリケーションを勝手にインストールすることもできません(Microsoftストアのアプリなど一部の例外を除く)。

個人PCのMicrosoftアカウント(メールアドレス)は、暗黙のうちに管理者グループ(Administrators)に属しているため、Users権限の制限は原則ありませんが、管理者が作成したファミリーユーザーは通常Users権限しか割り当てないでしょう。

企業でWindows PCを使用するユーザーは、通常、Active Directoryドメインに属するDomain Usersグループの組織の管理者によって管理されています。これにより、アクセス制限やアプリケーションの導入権限だけでなく、組織のポリシーが強制的に適用され、不正な操作ができないように制限されています。

このような状況では、ユーザーがPythonを自由に使用したいと思っても、家族や企業のIT管理者にインストールを依頼する必要があるでしょう。しかし、管理者がPythonに詳しくなかったり、忙しくて対応できない場合、どうすれば良いのでしょうか?

そのような時は、上司の許可をしっかりと取った上で、自分で対処するしかありません。ただし、ユーザー権限しかない場合でも、この記事が少しでもお役に立てれば幸いです。

2.インストーラ不要

上記の状況であっても、C:¥users¥username¥にインストールディレクトリを設定することにより、公式のPythonインストーラーを利用することができます。ただし、管理者がPythonについて適切な知識を持っていない場合、必要な環境を整えることは難しいでしょう。

Users権限のみを持っている場合でも、望む環境を設定する方法はあるでしょうか?

本当にできるの?

検証の結果「Yes,We Can」な確証を得たので、以下記事にまとめました。

免責事項

この環境構築は公式には推奨されていないため、一部のモジュールがインポートできない、または予期しない動作をすることがあります。
また組織、学校、または家族の管理者の許可なく行うと不利益が生じる可能性があり、その場合、本記事では責任を負いかねます。
以上ご了承の上、自己責任で進めてください。

Python Windows Embeddable版について

ここでは公式Python Windows Embeddable版は使用することにしました。
(以下、Windows Embeddable版と呼びます)

Embeddableは「埋め込み可能」という意味で、アプリケーションにバンドルする目的で作られたパッケージです。これは、Pythonがインストールされていないサーバーや顧客への納品を想定しています。

Windows Embeddable版の特徴

  • Pythonの実行に最低限必要なファイルのみ含まれます。

  • インストーラは不要です。アンインストールは、ファイル削除だけ(PCのレジストリを汚さない)

【参考記事】

この記事を書くため、先人の珠玉の記事をお借りしました。

にもかかわらず、筆者の理解が不十分で誤りが含まれている可能性があるため、コメント欄で遠慮なくご指摘やご指導をお願いします。

導入手順

前提条件の確認

最新のWindows(Windows 11 23H2)が導入されていること。
コマンドプロンプトとテキストエディタ(notepad)を使います。
*Powershellも使用しますが、必要に応じてコマンドプロンプトから起動することにいたします。

Python Windows Embeddable版のダウンロード・展開

手順

  1. 展開先ディレクトリを決めて展開します。ここでは私のPCのユーザープロファイル(C:\users\yoshi\)配下に展開します。

  2. 上記サイトより Windows embeddable package (64-bit)をダウンロードします。上記をクリックしてダウンロードか、以下のコマンドラインで実行します。

cd c:\Users\yoshi
Powershell
PS> wget https://www.python.org/ftp/python/3.12.4/python-3.12.4-embed-amd64.zip -O python312.zip
PS> exit

★上記コマンドで、ダウンロードファイル名は「python312.zip」となります。

設定ファイルの編集

展開後のフォルダ内にこんな名前のテキストファイルがあります。
pythonXXX._pth (XXXはPyrhonのバージョン番号。現在は312)

このファイルをメモ帳などのテキストエディタで開きます。

pythonXXX._pthの中身

一番下の行の「#import site」の先頭の# を削除し、上書き保存します。
(他は触ってはいけません)

編集後、上書き保存

【重要】追加の設定ファイルの作成


python312 フォルダ直下に、1個設定ファイルを作ります。
拡張子はpth, 拡張子の前はなんでも良いですが、current.pthとしました。
pythonXXX._pthと同様にnotepadで以下一行を書いて保存(コピペでOK)いたします。
※このファイルは「カレントディレクトリのモジュールもインポートできるようにする」設定ファイルです。

import sys; sys.path.append('')

pipの導入

パッケージ管理ツールpip を導入します。
python312フォルダ直下にget-pip.pyを以下リンクからダウンロードします。

https://bootstrap.pypa.io/get-pip.py

コマンドプロンプトでも以下の通りできます(python embeddableのダウンロードと同じ要領で)

powershell
PS > wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
PC > exit

ダウンロード終了後、コマンドプロンプトでpythoin312フォルダに移動し以下コマンドを実行します。

python.exe .\get-pip.py

何行か出力されpip の導入が終わります。
オレンジ色でなにかwarningが表示されますが無視してください。
pipが正常に導入されたかは、以下のように確認できます。

.\Scripts\pip -V
pip 24.2 from C:\bin\python3.12.4\Lib\site-packages\pip (python 3.12)

最後に、以下のディレクトリ構成が正しく作成されているかを確認しましょう。

  • a導入フォルダ:C:\Users\yoshi\bin\python312。「ユーザー」はWindows上で「Users」の別名です。

  • pipの導入により、導入フォルダに「lib」と「Scripts」のフォルダが新たに作成されています。Scriptsフォルダの中にはpip.exeなどが存在しています。

今回構築したPython(c:\users\yoshi\bin\python312)

配布準備

「python312」階層ごとzipファイルで圧縮し、他PCに配布しやすい形でコピーをとります。
以降これをベースに配布、構築していきますので、無くさないようコピーを保存してください。私は個人のクラウドストレージに保存しました。

以下の記事に続きます。

いいなと思ったら応援しよう!