zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Samba 4.0 RC3 发布
    SymmetricDS 3.1.7 发布,数据同步和复制
    Express.js 3.0 发布,Node.js 的高性能封装
    GIFLIB 5.0.1 发布,C语言的GIF处理库
    jQuery UI 1.9.1 发布
    SVN Access Manager 0.5.5.14 发布 SVN 管理工具
    DynamicReports 3.0.3 发布 Java 报表工具
    HttpComponents HttpClient 4.2.2 GA 发布
    AppCan 2.0 正式发布,推移动应用云服务
    Ruby 2.0 的新功能已经冻结
  • 原文地址:https://www.cnblogs.com/blueel/p/2834107.html
Copyright © 2011-2022 走看看