• python打包程序py2exe实战


    最近在学python,所以用python写了个脚本,车位管理系统(嘿嘿,我在大学的时候用php做过一套系统,还获过奖呢)
    但是这个程序现在还有太大的局限性,要使用就要先安装python环境比较麻烦

    所以我就想先把程序打包发布,常用的就是py2exe打包,所以打算这次也用它。好了,开始。。。。
    准备工作:
    安装py2exe
    编写setup.py代码如下:

     1 #-*-coding: UTF-8-*-
     2 from distutils.core import setup
     3 import py2exe
     4 # Powered by www.pythontab.com
     5 INCLUDES = []
     6 options = {"py2exe" :  
     7     {"compressed" : 1,  
     8      "optimize" : 2,  
     9      "bundle_files" : 2,  
    10      "includes" : INCLUDES,  
    11      "dll_excludes": [ "MSVCP90.dll", "mswsock.dll", "powrprof.dll","w9xpopen.exe"] }}  
    12 setup(
    13     options = options, 
    14     description = "车位管理系统",  
    15     zipfile=None,
    16     console=[{"script": "park.py", "icon_resources": [(1, "logo.ico")] }],
    17     )

    具体的option和其它的选项是什么含意可以search一下,网上非常多的资料,我就不赘述了
    下一步,运行命令:

    1 python setup.py py2exe

    编译完成后会在当前目录下生成一个dist目录,里面有park.exe文件,不过执行时并不成功
    出现如下错误:

     1 Traceback (most recent call last):
     2   File "park.py", line 4, in <module>
     3   File "zipextimporter.pyo", line 82, in load_module
     4   File "pyquery.pyo", line 9, in <module>
     5   File "zipextimporter.pyo", line 82, in load_module
     6   File "cssselectpatch.pyo", line 6, in <module>
     7   File "zipextimporter.pyo", line 82, in load_module
     8   File "lxml\cssselect.pyo", line 8, in <module>
     9   File "zipextimporter.pyo", line 98, in load_module
    10   File "lxml.etree.pyx", line 72, in init lxml.etree (src/lxml/lxml.etree.c:156121)
    11 ImportError: No module named _elementpath

    在网上找了下解决方案,问题出在了lxml库。

    不能正确找到路径,因为是lxml第三方库,要多加一条指令指定路径;将编译命令改为

    1 python setup.py py2exe -p lxml,gzip

    这里还多加了gzip,原因同lxml一样
    最后执行生成的文件有park.exe和python27.dll,只要把这两个文件放到一个文件夹,然后就可以在任何一台电脑上运行啦。哈哈。有了这个工具我们就可以用python做一些好用的小工具给自己和朋友们用了。。。顺便给大家推荐一个python学习的网站http://www.pythontab.com

  • 相关阅读:
    BZOJ 2038 小Z的袜子 莫队算法
    POJ 3407 球面距离
    POJ 1375 圆的切线
    BZOJ 1502 月下柠檬树 simpson积分
    UVA 11704
    POJ 1981 定长圆覆盖最多点
    HDU 3982 半平面交+圆和凸多边形面积并
    ZOJ 1104 二分
    使用Singleton来实现Flash和Flex的通信。
    校内API相关
  • 原文地址:https://www.cnblogs.com/blueel/p/2834107.html
Copyright © 2020-2023  润新知