创建python脚本的可执行文件
我试图用python脚本创建一个可执行文件。 系统配置:创建python脚本的可执行文件,python,pyinstaller,py2exe,cx-freeze,Python,Pyinstaller,Py2exe,Cx Freeze,我试图用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
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
,并且由于python2.7
环境不支持PyQt5
,因此我无法继续使用此方法
方法2:py2exe
1) python setup.py安装
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']
方法3:cx\u冻结
命令: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']
X:\Data\u Analytics\ETL\build\exe.win-amd64-2.7>Expiry.exe
回溯(最近一次呼叫最后一次):
文件“X:\Anaconda\lib\site packages\cx\u Freeze\initscripts\uuuu启动\uuuuu.py”,第14行,正在运行
module.run()
文件“X:\Anaconda\lib\site packages\cx\u Freeze\initscripts\Console.py”,第26行,正在运行
执行官(代码、指令)
文件“Expiry.py”,第5行,在
文件“X:\Anaconda\lib\site packages\pandas-0.23.4-py2.7-win-amd64.egg\pandas\\uuuuuuuu init\uuuuuuuuu.py”,第19行,in
“缺少必需的依赖项{0}”。格式(缺少依赖项))
ImportError:缺少必需的依赖项['numpy']
我试过重新安装熊猫和小熊猫,也试过重新安装蟒蛇,但没有成功
import numpy
print numpy.__version__
import pandas
print pandas.__version__
如果这不起作用,您首先需要按此顺序(重新)安装numpy
和pandas
cx\u freeze
根据pandas
(以及numpy
)冻结脚本,您需要明确地将numpy
添加到build\u 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")])
看@正如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")])
是否尝试添加您在py2exe安装选项中使用的软件包?检查页面中的示例或cx_freeze是否有效,创建了exe,但现在我面临新的错误:英特尔MKL致命错误:无法加载MKL_英特尔线程.dll。@KrishnaKumar这可能与Anaconda处理包的方式有关。您可能需要明确地告诉
cx\u-Freeze
使用build\u-exe
选项include\u-files
包含DLL。哪里是mkl\u英特尔线程.dll
?(应该在X:\Anaconda\lib\site packages\
中的某个位置)我在我的X:\Anaconda\lib\site packages\中找不到这个mkl\u intel\u thread.dll。我需要下载并放在这个目录中吗?这也是更改,对吗?选项={'build_exe':{'packages':['numpy'],'include_files':['X:\Anaconda\Lib\site packages\mkl_intel_thread.dll']}我对所有这些都有点幼稚,请帮忙谢谢你,我现在可以成功运行我的exe文件了。你是个巫师!谢谢@jpeg@KrishnaKumar听起来不错,不客气。你必须修改我的答案才能让它生效吗?如果是,请在此处留下评论,解释未来可能会寻求解决同一问题的方法的访客的注意事项。出于同样的原因,也请考虑将我的答案标记为“接受”(点击左边的复选标记),如果它有助于解决您的问题。或者,如果你认为你的解决方案与我的太不一样,用你的解决方案写下你自己的答案,并将其标记为已接受。
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")])