创建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脚本创建一个可执行文件。 系统配置:

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']
我试过重新安装熊猫和小熊猫,也试过重新安装蟒蛇,但没有成功

  • 您应该能够在Python控制台中无错误地运行以下命令:

    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")])