zoukankan      html  css  js  c++  java
  • python 使用cx-freeze打包程序

    python环境 3.6.5      win7   linux环境同理

    先尝试了PyInstaller   ,打包时一直提示 no module named gtk   而gtk 又依赖pygobject ,尝试安装几次之后失败放弃

    改用cx-freeze

    首先写一个 setup.py

    1.py     2.py     是自己要打包的程序名字

    注意里面的四个绝对路径改成真实的路径,否则会爆各种奇怪的错误,运行   python setup.py install

    执行exe 比如下图,在python终端里面输入 import _tkinter是可以的,但是打包以后会这样报错,

    引入 tcl86t.dll和tk86t.dll 后问题解决

    然后很容易会报错如下图,解决办法是一个一个的在自己的python路径中找到这些.py文件,然后执行:python -m compileall   +文件名.py      再把生成的.pyc文件拷到打包项目的相应位置

     setup.py  :

    import sys
    from cx_Freeze import setup, Executable
    import os
    os.environ['TCL_LIBRARY'] = "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\tcl\tcl8.6"
    os.environ['TK_LIBRARY'] = "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\tcl\tk8.6"
    
    include_files = [r"C:UsersAdministratorAppDataLocalProgramsPythonPython36DLLs	cl86t.dll",
                     r"C:UsersAdministratorAppDataLocalProgramsPythonPython36DLLs	k86t.dll"]
    
    #打包所需要的第三库
    build_exe_options = {"packages": ["glob", "os", "numpy", "datetime", "PIL", "matplotlib", "scipy", "_tkinter"],
                         "includes ": ['numpy','glob','os','datetime','datetime','PIL', "matplotlib", "matplotlib.pyplot" ,"scipy", "_tkinter"]}
    
    base = None
    if sys.platform == 'win32':
        base = 'Win32GUI'
    
    options = {
        'build_exe': {
            'includes': 'atexit' ,'include_files': include_files
        }
    }
    
    executables = [
        Executable('1.py', base=base),
        Executable('2.py')
    ]
    
    setup(name='education',
          version='0.1',
          description='education software',
          options=options,
          executables=executables
          )
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/dzzy/p/9296131.html
Copyright © 2011-2022 走看看