LoginSignup
0
1

More than 3 years have passed since last update.

Ubunts環境構築からpythonファイルをexe化する手順

Last updated at Posted at 2020-11-17

はじめに

Ubuntsは使用したことがなく、Hyper-Vとはなんぞやって部分から入りました。
そこから、pythonをexe化する機会は世間的にあまり多くないのか様々な情報に当たりましたがexe化することができたのでまとめます。


環境
windows10 64bit
ubunts 20.04
python 3.7.7
pip 20.2.4
pyenv version 2020.11.15
pyinstaller 4.0


Hyper-vとは
windows 社が無償で提供する仮想化技術の一つ。
windows8~やwindows serverに標準搭載している機能。
サーバマネージャーから機能をONすることで使用可能となる。

詳細はこちらHyper-Vとは?

  • Windows10のHyper-V上でUbuntuを動かす -ubuntsの構築はこの方の記事を見て構築すれば問題ないと思います。 ネットワークの設定は後程、Hyper-Vマネージャーの作成した仮想マシンの設定にて、’ネットワークアダプター’を新しい仮想スイッチに設定する必要があります。

ubuntsの最新のパッケージ情報を取得

sudo apt update

ubuntsのパッケージ情報を更新

sudo apt upgrade

pyenvを使用するためにもろもろインストール

sudo apt install -y build-essential # c++コンパイラ
sudo apt install -y libffi-dev
sudo apt install -y libssl-dev # openssl
sudo apt install -y zlib1g-dev
sudo apt install -y liblzma-dev
sudo apt install -y libbz2-dev libreadline-dev libsqlite3-dev # bz2, readline, sqlite3
sudo apt install -y git

pyenvのパッケージのインストール

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

.bashrcの更新

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pythonのインストール

pyenv install 3.7.7

デフォルトだと3.8.5を使用していたので今回の3.7.7をデフォルトで使用したいため

echo "3.7.7" > .python-version

pipenvのインストール

pip install pipenv

WARNING: You are using pip version 19.2.3, however version 20.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

こいつが出てくるとおもうので

pip install --upgrade pip

pipenvを初期設定

 pipenv install

 

Pythonで開発するときに,プロジェクト毎のパッケージ管理や仮想環境の構築を簡単に自動で行ってくれるツール。パッケージのインストールならpip,仮想環境の構築ならvirtualenv(venv)を使えば対応できますが,pipenvはそれらをまとめてより簡単に扱えるようにサポートしてくれます.

Using /usr/bin/python3.8 to create virtualenv・・・

×Failed creating virtual enviroment
私の場合は上記のエラーが出てきました。
Pythonのバージョンが違うみたいなので

 pipenv --python 3.7

これで使用するPythonのversionを指定しました。

activateする

 pipenv shell

 
仮想環境にこれで入れました

パッケージが必要な場合は導入する

 pipenv install argparse
 pipenv install argparse==1.4.*

Pipfileに入っていることを確認

 cat Pipfile

pyinstallerの導入

 pip install pyinstaller

pipenvにてpyinstallerを導入

 pipenv install pyinstaller

exe化したいファイルが存在しているディレクトリに移動し、

exe実行

 LD_LIBRARY_PATH=/home/namae/.pyenv/bin/pyenv pyinstaller test.py

これでエラーが吐かれました。

 OSError: Python library not found: libpython3.7m.so.1.0 libpython3.7mu.so.1.0 libpython3.7.so.1.0 libpython3.7m.so
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.
* On Debian/Ubuntu, you would need to install Python development packages
  * apt-get install python3-dev
  * apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)

環境変数PYTHON_CONFIGURE_OPTSに、--enable-sharedオプションをセットせずにpyenv installしていると発生します。

 LD_LIBRARY_PATH=/home/namae/.pyenv/versions/3.7.7 pyenv install
 LD_LIBRARY_PATH=/home/namae/.pyenv/versions/3.7.7 pyinstaller test.py --onefile

 Building EXE from EXE-00.toc completes successfully.

exeができました!!

動作確認

 cd dist
 ./test
hello

起動してます、OKです!

フォルダ大きい問題がありますが
私がexe化したいファイルだとそこまで大きく(約12MBくらいはありましたが)
できました。


参考にした記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1