创建我的 python 脚本的可执行文件
Creating executable file of my python script
我正在尝试从我的 python 脚本创建一个可执行文件。
系统配置:
python --version :
Python 2.7.15 :: Anaconda, Inc.
conda : 4.3.16
numpy : 1.14.3
pandas : 0.23.4
py2exe : 0.6.9
pyinstaller : 3.4
cx-Freeze : 5.1.1
方法 1: 我尝试了 pyinstaller
但不幸的是它需要 PyQt5
并且因为 pyqt5
不支持 python 2.7
环境 我无法继续使用此方法 https://pypi.org/project/PyQt5/#files
方法二: py2exe
1) python setup.py install
2) python setup.py py2exe
但是当我在 cmd
中执行 运行 我的 exe 文件时,我得到以下错误
错误:
X:\Data_Analytics\ETL\dist>Expiry.exe
Traceback (most recent call last):
File "Expiry.py", line 5, in <module>
File "pandas\__init__.pyc", line 19, in <module>
ImportError: Missing required dependencies ['numpy']
设置代码文件:
from distutils.core import setup
import py2exe
import sys
sys.setrecursionlimit(5000)
setup(console=['Expiry.py'])
方法三:cx_Freeze
命令:python setup.py build
安装文件:
from cx_Freeze import setup, Executable
setup(name = "Expiry" ,
version = "1.0" ,
description = "" ,
executables = [Executable("Expiry.py")])
错误:
X:\Data_Analytics\ETL\build\exe.win-amd64-2.7>Expiry.exe
Traceback (most recent call last):
File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "Expiry.py", line 5, in <module>
File "X:\Anaconda\lib\site-packages\pandas-0.23.4-py2.7-win-amd64.egg\pandas\__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']
我已经尝试重新安装 pandas
和 numpy
,也尝试重新安装 anaconda 但没有成功。
您应该能够 运行 在 Python 控制台中无错误地执行以下命令:
import numpy
print numpy.__version__
import pandas
print pandas.__version__
如果这不起作用,您首先需要按此顺序(重新)安装 numpy
和 pandas
。
为了冻结依赖于 pandas
(因此依赖于 numpy
)和 cx_Freeze
的脚本,您需要显式添加 numpy
到 build_exe
选项的 packages
列表。尝试对安装脚本进行以下修改:
from cx_Freeze import setup, Executable
options = {'build_exe': {'packages': ['numpy']}}
setup(name = "Expiry" ,
version = "1.0" ,
description = "" ,
options = options,
executables = [Executable("Expiry.py")])
参见 Creating cx_Freeze exe with Numpy for Python。
@jpeg 正如所指出的,这是我的解决方案,在您的推荐下有效。
from cx_Freeze import setup, Executable
options = {'build_exe': {'packages': ['numpy'], 'include_files':['X:\Anaconda\Lib\site-packages\mkl_intel_thread.dll']} }
setup(name = "Expiry" ,
version = "1.0" ,
description = "" ,
options = options,
executables = [Executable("Expiry.py")])
我正在尝试从我的 python 脚本创建一个可执行文件。 系统配置:
python --version :
Python 2.7.15 :: Anaconda, Inc.
conda : 4.3.16
numpy : 1.14.3
pandas : 0.23.4
py2exe : 0.6.9
pyinstaller : 3.4
cx-Freeze : 5.1.1
方法 1: 我尝试了 pyinstaller
但不幸的是它需要 PyQt5
并且因为 pyqt5
不支持 python 2.7
环境 我无法继续使用此方法 https://pypi.org/project/PyQt5/#files
方法二: py2exe
1) python setup.py install
2) python setup.py py2exe
但是当我在 cmd
中执行 运行 我的 exe 文件时,我得到以下错误
错误:
X:\Data_Analytics\ETL\dist>Expiry.exe
Traceback (most recent call last):
File "Expiry.py", line 5, in <module>
File "pandas\__init__.pyc", line 19, in <module>
ImportError: Missing required dependencies ['numpy']
设置代码文件:
from distutils.core import setup
import py2exe
import sys
sys.setrecursionlimit(5000)
setup(console=['Expiry.py'])
方法三:cx_Freeze
命令:python setup.py build
安装文件:
from cx_Freeze import setup, Executable
setup(name = "Expiry" ,
version = "1.0" ,
description = "" ,
executables = [Executable("Expiry.py")])
错误:
X:\Data_Analytics\ETL\build\exe.win-amd64-2.7>Expiry.exe
Traceback (most recent call last):
File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
exec(code, m.__dict__)
File "Expiry.py", line 5, in <module>
File "X:\Anaconda\lib\site-packages\pandas-0.23.4-py2.7-win-amd64.egg\pandas\__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']
我已经尝试重新安装 pandas
和 numpy
,也尝试重新安装 anaconda 但没有成功。
您应该能够 运行 在 Python 控制台中无错误地执行以下命令:
import numpy print numpy.__version__ import pandas print pandas.__version__
如果这不起作用,您首先需要按此顺序(重新)安装
numpy
和pandas
。为了冻结依赖于
pandas
(因此依赖于numpy
)和cx_Freeze
的脚本,您需要显式添加numpy
到build_exe
选项的packages
列表。尝试对安装脚本进行以下修改:from cx_Freeze import setup, Executable options = {'build_exe': {'packages': ['numpy']}} setup(name = "Expiry" , version = "1.0" , description = "" , options = options, executables = [Executable("Expiry.py")])
参见 Creating cx_Freeze exe with Numpy for Python。
@jpeg 正如所指出的,这是我的解决方案,在您的推荐下有效。
from cx_Freeze import setup, Executable
options = {'build_exe': {'packages': ['numpy'], 'include_files':['X:\Anaconda\Lib\site-packages\mkl_intel_thread.dll']} }
setup(name = "Expiry" ,
version = "1.0" ,
description = "" ,
options = options,
executables = [Executable("Expiry.py")])