CODE Python

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

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

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

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

そこで、Windosでの配布方法ではpython embeddedという方法があります。

本記事では、下記について紹介します。

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

スポンサーリンク

ダウンロード

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

https://www.python.org/downloads/windows/

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

「Windows x86-64 embeddable zip file」

を選びます。私は、3.6.8を選んでいます。

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

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

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

環境の設定

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

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

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

  • setenv.bat
  • python_console.bat

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

setenv.bat

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

python_console.bat

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

pipをインストール

ダウンロード

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

https://bootstrap.pypa.io/

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

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

インストール

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

python**._pthの編集

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

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

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

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

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

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

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

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

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

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

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

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

main.py

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

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

main.pyの実行

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

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

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

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

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

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

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

最後に

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

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

-CODE, Python
-

© 2020 ひつじ工房 Powered by AFFINGER5