Pythonパッケージ実行可能ファイルの生成
5852 ワード
cx_freezeパッケージ
インストール
1、cx_をインストールするfreeze
2、cxfreezeを生成する.bat.pythonインストールフォルダの下のScriptsパスで実行
3、生成したcxfreeze.batファイルの内容は以下の通りです.
4、cxfreeze--versionコマンドでcxfreezeバージョンを問合せ、cx_を正しく問合せfreezeバージョンでは、インストールに成功したと判断できます.
梱包する
1、梱包命令
2、簡易梱包コマンド:
cx_freezeパッケージファイルで発生した問題
1、exeファイルを正しく生成したら、ダブルクリックしてフラッシュバックします.フラッシュバックの原因を特定
2、生成したexeファイルのフラッシュバックを実行し、「ImportError:cannot import name'_methods'」とエラーを報告する
理由:パッケージされたファイル内のアシストモジュールnumpyのlibumpycore下_methods.pycファイルのパッケージングに成功した解決方法はありません:1、pythonのnumpyモジュールのインストールパスの下のmethodsを見つけます.cpython-35.pycファイル、例えばC:Python 35Libsite-packagesumpycore_pycache_methods.cpython-35.pyc 2、将_methods.cpython-35.pycファイルは、exeファイルを生成するlibumpycoreフォルダの下にコピーされ、名前が_methods.pyc
2、生成したexeファイルのフラッシュバックを実行し、「ImportError:cannot import name'format」とエラーを報告する
理由:パッケージされたファイルの補助モジュールnumpyのlibumpylib下format.pycファイルのパッケージングに成功した解決方法はありません:1、pythonのnumpyモジュールのインストールパスの下のformatを見つけます.cpython-35.pycファイル、例えばC:Python 35Libsite-packagesumpylib_pycache\format.cpython-35.pyc 2、format.cpython-35.pycファイルはexeファイルを生成するlibumpylibフォルダの下にコピーし、formatと名前を変更します.pyc
pyinstallerパッケージ
インストール
1、pyinstallerのインストール
2、pyinstaller-hクエリーモジュールによる使用方法
梱包する
1、パッケージコマンド、生成した実行可能ファイルはdistフォルダの下にある.
インストール
1、cx_をインストールするfreeze
pip install cx_freeze
2、cxfreezeを生成する.bat.pythonインストールフォルダの下のScriptsパスで実行
python cxfreeze-postinstall
3、生成したcxfreeze.batファイルの内容は以下の通りです.
@echo off
C:\Anaconda3\python.exe C:\Anaconda3\Scripts\cxfreeze %*
4、cxfreeze--versionコマンドでcxfreezeバージョンを問合せ、cx_を正しく問合せfreezeバージョンでは、インストールに成功したと判断できます.
C:\Users\Administrator> cxfreeze --version
cxfreeze 5.1.1
Copyright (c) 2007-2017 Anthony Tuininga. All rights reserved.
Copyright (c) 2001-2006 Computronix Corporation. All rights reserved.
梱包する
1、梱包命令
F:\Python35\python3.exe F:\Python35\Scripts\cxfreeze AviVideo.py --target-dir="./AviVideo" --target-name="AVI.exe" --include-modules="numpy" --icon=1.ico
# F:\Python35\python3.exe :python 。
# F:\Python35\Scripts\cxfreeze:cx_freeze
# AviVideo.py:
# --target-dir="./AviVideo":
# --target-name="AVI.exe": exe , 。
# --include-modules="numpy": , 。
# --icon=1.ico: exe 。
2、簡易梱包コマンド:
cxfreeze AviVideo.py --target-dir="./AviVideo"
# cxfreeze:
# AviVideo.py:
# --target-dir="./AviVideo": exe
cx_freezeパッケージファイルで発生した問題
1、exeファイルを正しく生成したら、ダブルクリックしてフラッシュバックします.フラッシュバックの原因を特定
# , 。
# test.py
# exe
# python
import os
result=os.popen(r"G:\study\python\111\AviVideo\AviVideo.exe")
print(result.read())
2、生成したexeファイルのフラッシュバックを実行し、「ImportError:cannot import name'_methods'」とエラーを報告する
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "AviVideo.py", line 3, in
import numpy
File "numpy\__init__.py", line 142, in
from . import add_newdocs
File "numpy\add_newdocs.py", line 13, in
from numpy.lib import add_newdoc
File "numpy\lib\__init__.py", line 8, in
from .type_check import *
File "numpy\lib\type_check.py", line 11, in
import numpy.core.numeric as _nx
File "numpy\core\__init__.py", line 38, in
from . import numeric
File "numpy\core
umeric.py", line 2931, in
from . import fromnumeric
File "numpy\core\fromnumeric.py", line 15, in
from . import _methods
ImportError: cannot import name '_methods'
理由:パッケージされたファイル内のアシストモジュールnumpyのlibumpycore下_methods.pycファイルのパッケージングに成功した解決方法はありません:1、pythonのnumpyモジュールのインストールパスの下のmethodsを見つけます.cpython-35.pycファイル、例えばC:Python 35Libsite-packagesumpycore_pycache_methods.cpython-35.pyc 2、将_methods.cpython-35.pycファイルは、exeファイルを生成するlibumpycoreフォルダの下にコピーされ、名前が_methods.pyc
2、生成したexeファイルのフラッシュバックを実行し、「ImportError:cannot import name'format」とエラーを報告する
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Anaconda3\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "AviVideo.py", line 3, in
import numpy
File "numpy\__init__.py", line 142, in
from . import add_newdocs
File "numpy\add_newdocs.py", line 13, in
from numpy.lib import add_newdoc
File "numpy\lib\__init__.py", line 24, in
from .npyio import *
File "numpy\lib
pyio.py", line 13, in
from . import format
ImportError: cannot import name 'format'
理由:パッケージされたファイルの補助モジュールnumpyのlibumpylib下format.pycファイルのパッケージングに成功した解決方法はありません:1、pythonのnumpyモジュールのインストールパスの下のformatを見つけます.cpython-35.pycファイル、例えばC:Python 35Libsite-packagesumpylib_pycache\format.cpython-35.pyc 2、format.cpython-35.pycファイルはexeファイルを生成するlibumpylibフォルダの下にコピーし、formatと名前を変更します.pyc
pyinstallerパッケージ
インストール
1、pyinstallerのインストール
pip install pyinstaller
2、pyinstaller-hクエリーモジュールによる使用方法
C:\Users\Administrator>pyinstaller
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data ]
[--add-binary ] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
[--key KEY] [-d] [-s] [--noupx] [-c] [-w]
[-i ]
[--version-file FILE] [-m ] [-r RESOURCE]
[--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--runtime-tmpdir PATH] [--distpath DIR]
[--workpath WORKPATH] [-y] [--upx-dir UPX_DIR] [-a]
[--clean] [--log-level LEVEL]
scriptname [scriptname ...]
......
梱包する
1、パッケージコマンド、生成した実行可能ファイルはdistフォルダの下にある.
# exe 。
pyinstaller -F xxxx.py
#
pyinstaller xxxx.py