Python Python 活用 プログラミング

Windowsでpythonを使う/配布する時に便利!Python embeddable package使い方

 

Pythonを使うシーンが多いけど、他の人に使ってもらうにどんな方法とるか悩んでいる方も多いのではないでしょうか?

方法として、色々ありますが、課題もあるかと思います。

  • Djangoとか使って、WebAPIにする
    → サーバー準備とか、めんどいなぁ
  • pyinstallerでexeにする
    → numpyとか入れると動作重いしなぁ

 

そこで、Windowsでの配布方法ではpython embeddable packageを使う方法があります。

 

本記事の内容

  • python embeddable packageのダウンロード
  • 環境設定
  • ライブラリのインストール
  • サンプルコードを動かしてみる

 

64bitの用のサンプルコードは下記よりダウンロードください。

サンプルコード

 

スポンサーリンク

ダウンロード

下記のリンクよりダウンロードします。

>>Python Releases for Windows

 

pythonのバージョンは好きなものを選び、その中から

「Windows embeddable package (**-bit)」

を選びます。バージョンはStable Releasesから選べばOKです。

 

 

ダウンロードしたら、適当にフォルダを作成して、その中に解凍したフォルダを入れます。

解凍したフォルダは長ったらしいので、python-3.*.*とか短くしましょう

先に書いておくと、最終的なフォルダ構成は下記のようになります。

 

環境の設定

いくつかファイルを作成、追加して、開発しやすい環境にします。

python consoleを動かすバッチファイル

解凍したpythonを入れているフォルダに二つのバッチファイルを作成します。

  • setenv.bat
  • python_console.bat

これがないと使えないというわけではないですが、作っておいた方が便利です。

 

setenv.bat

PYTHON_PATHはバージョンというかpython embededdのフォルダ名に合わせてください。

SET DP0=%~dp0
SET DP0=%DP0:~0,-1%

rem overriding windows user/local environment
SET LOCALENV_DIR=%DP0%\_local_env
SET TMP=%LOCALENV_DIR%\_tmp
SET TEMP=%LOCALENV_DIR%\_tmp
SET HOME=%LOCALENV_DIR%\userprofile
SET HOMEPATH=%LOCALENV_DIR%\userprofile
SET USERPROFILE=%LOCALENV_DIR%\userprofile
SET LOCALAPPDATA=%LOCALENV_DIR%\localappdata
SET APPDATA=%LOCALENV_DIR%\userroaming

SET PYTHON_PATH=%DP0%\python-3.6.8

rem overriding default python env vars in order to interfere with any system python installation
SET PYTHONHOME=
SET PYTHONPATH=
SET PYTHONEXECUTABLE=%PYTHON_PATH%\python.exe
SET PYTHONWEXECUTABLE=%PYTHON_PATH%\pythonw.exe

SET PYTHON_EXECUTABLE=%PYTHON_PATH%\python.exe
SET PYTHONW_EXECUTABLE=%PYTHON_PATH%\pythonw.exe
SET PYTHON_BIN_PATH=%PYTHON_EXECUTABLE%
SET PYTHON_LIB_PATH=%PYTHON_PATH%\Lib\site-packages
SET PATH=%PYTHON_PATH%;%PYTHON_PATH%\Scripts;%DP0%\CMake\Bin;%PATH%
SET DISTUTILS_USE_SDK=1

python_console.bat

anacondaだと各環境ごとにターミナル起動できますが、それと同じようなものです。

cd python-*.*.*のところもダウンロードしたバージョンのフォルダに変更してください。

@echo off
cd /D %~dp0
call setenv.bat
cd python-3.6.8
cmd

pipをインストール

ダウンロード

ダウンロードしたpythonではpipが使えないので、下記リンクから、get-pip.pyをダウンロードします。

>>ダウンロード先

 

get-pip.pyのリンクを右クリックでダウンロードします。

ダウンロードしたら、python-3.*.*のフォルダに入れます。

 

 

インストール

先ほど作成した、python_console.batを叩いて、下記を入力して、エンターを押します。

 

python get-pip.py

 

python**._pthの編集

python**._pthのファイルの中身を編集します。ファイル名はバージョンによって違います。

修正箇所は、import siteの前についている#を削除します。

 

 

ライブラリのインストール

次に、numpyなど必要なライブラリをインストールします。

まず、python_console.batを動かします。

あとは、いつも通り、pip install ***をするだけです。

 

 

2021年2月 pipのインストールでSSLError出る方は下記記事参照ください。

>>【python】pip SSLError SSL: WRONG_VERSION_NUMBER対応

サンプルコードを動かしてみる

実際にpythonコードを動かすにも注意点があるので、そこに触れながら、

サンプルコードを動かします。

サンプルコードはpython embeddedと同じ場所にCODEというフォルダを準備して

そこに下記のような感じで、pythonファイルを置きたいと思います。

hogeフォルダとfoo.pyはmain.pyで読み込むためのものです。

 

main.py

main.pyの中身は下記にしています。

ただの、Hello worldですが、foo.pyもimportしています。

from hoge import foo

if __name__ == "__main__":
	print('Hello world')

main.pyの実行

python_cosole.batを起動して、下記を実行します。

python ..\CODE\main.py

そうすると、No module named 'hoge'と怒られます。

 

sys.pathを確認すると、以下のようになっています。

 

これを解消したいので、python36._pthを削除します。

 

もう一度、sys.pathを確認します。これでOKです。

 

もう一度、main.pyを動すと、ちゃんと動きます。

 

これで、あとはひたすらコーディングをしていけばOKです。

 

最後に

pythonコードのフォルダ構成は自由に変えてもらっても良いですし、

配布するときは、batファイルとかでpythonを実行するようにすると便利です。

 

本業や副業で、pythonの開発を受ける時は、この方法を使うことで、クライアントの環境を汚さず、インストールも不要で、動かしてもらうことが可能です。

>> Python 副業の始め方紹介【隙間時間 で可能】

この環境で、デスクトップアプリの開発を説明しているので下記も参照ください。

>> 【PyQt5】デスクトップアプリ化して配布

-Python, Python 活用, プログラミング
-