项目上做一个小工具,通过webservice接口实现配置下发。python文件调试通过了,想把它抓换成exe,网上查了下,得知有py2exe这个好用精简的小工具,本以为分分钟搞定的事情,结果经历了九转十八弯。在此把遇到的坑和填坑的手段一一记录一下,希望不要忘记。

py2exe官网上提供了一个特别精简的例子,setup.py中仅那么几行代码:

from distutils.core import setup
import py2exe

setup(console=["helloworld.py"])

其中helloworld.py是待转换的python文件。实际上setup的函数选项远不止一个console,且这种最精简的写法无法满足更高级的需要,例如有第三方库,例如py文件中图片甚至音频文件链接等等。更多的应用要去查官方文档,这里本人唯一要使用到的是第三方库。

网上查找的参考代码如下:

# coding=utf8

from distutils.core import setup
import py2exe extra_modules = ["bs4"] options = {"py2exe":
{"compressed": 1,
"optimize": 2,
"bundle_files": 1, # 表示把所有文件打包进exe可执行程序
"packages": extra_modules,
#"includes": extra_modules
}
}
setup(
version = "1.0.0",
description = "test for py2exe",
name = "Py2exeTest",
options = options,
zipfile = None,
console = [{"script": "app_main.py"}]
)

其中几个重要的参数:

console = [{"script": "app_main.py"}] 表示这是个控制台程序,希望把app_main.py打包成exe程序。这里把app_main.py换成自己的python脚本名即可

zipfile = None 默认py2exe会生成一个library.zip的库文件;此处为None,则不生成改文件,把它打包到exe文件。对于该选项,本人尝试编却一直编不过,报configParser的错误,网上也没找到解决办法,最后看到有人说打包编可能存在失败概率,反正也不要求这个,就把打包的相关选项都去掉了。一试编过了。

"packages": extra_modules 指定依赖的其它模块。在我使用过程中,实际上packages和includes选项都需要,缺一个就报configParser错误,此处我用到的suds和paramiko,因此extra_modules写了两个库

"bundle_files": 1 表示要把所有文件打包成一个 exe可执行程序

几经波折后,setup,py文件代码如下:

# coding=utf8

from distutils.core import setup
import py2exe extra_modules = ["suds","paramiko"] options = {"py2exe":
{
"packages": extra_modules,
"includes": extra_modules
}
}
setup(
version = "1.0.0",
description = "test for py2exe",
name = "Py2exeTest",
options = options,
console = [{"script": "test.py"}]
)

以为到这就完了,编的时候还是报了各种错,其中最主要的是找不到库的错,如

"no module named paramiko"

"no module named ecdsa"

吧啦吧啦

又是去求助万能的互联网,网上说py2exe不支持egg模块的包,解决办法是把报错的库的包(Python安装路径,一般是c:\python27\lib\site-packages)的egg文件中,同名的文件夹解压出来,放入python库中(c:\python27\lib\site-packages)。有些拗口,就这么个意思,最后问题解决,在dist下出现了想要的exe文件,执行正常。

python源文件转换成exe问题解决贴的更多相关文章

  1. 使用py2exe将python脚本转换成exe可执行文件

    Python(wiki en  chs)是一门弱类型解释型脚本语言,拥有动态类型系统和垃圾回收功能,支持多种编程范式:面向对象.命令式.函数式和过程式编程. 由于Python拥有一个巨大而广泛的标准库 ...

  2. pyinstaller使用-python项目转换成exe可执行文件

    http://blog.csdn.net/pipisorry/article/details/50620122 Python不是每个人的计算机里面都有安装,当您写了一个好用的工具,需要一个standa ...

  3. 如何将python源文件打包成exe文件

    PyInstaller是一个十分有用的第三方库,它能够在Windows.Linux.Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Python 程序可以在没有安装 Py ...

  4. 将python源文件打包成exe文件

    pyinstaller 库的使用PyInstaller是一个十分有用的第三方库,它能够在Windows.Linux.Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Pyt ...

  5. 用py2exe将python文件转换成exe可执行程序

    1.首先需要安装py2exe模块,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 然后用pip install 命令安装py2exe模块,如果你用的py ...

  6. 将python脚本转换成exe文件--pyinstaller

    遇到的大坑: 直接运行python文件效果:         执行 pyinstaller  -F -w  -p  -i ./123.ico  ./main.py    在dict文件夹下生成exe文 ...

  7. 小白学习Python之路---py文件转换成exe可执行文件

    一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的 ...

  8. 使用py2exe将python程序打包成exe程序

    近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...

  9. 使用pyInstaller发布PathMerge的exe版本(py转换成exe)

    前言 PathMerge是用python写的一个辅助文件夹合并的小工具,它的特点是不用担心合并后文件会丢失,旧文件会创建副本保存下来,除非你手动删除. 详情见:python开发目录合并小工具 Path ...

随机推荐

  1. JS框架设计读书笔记之-函数

    这次写一些函数 1.模拟Object.keys方法 Object.keys = Object.keys || function(obj){ var a = []; // a[0],a[1]...分别赋 ...

  2. 【推荐】地推统计结算工具SDK,手机开发首选

    地推是推广app的一种重要手段,同时地推结算对地推统计的精度的要求非常高,而openinstall就是一款符合要求的地推统计结算工具.它不仅多渠道统计能力强,安装设备识别精准,渠道统计精度高.还支持地 ...

  3. Ionic3 一些命令

    ionic start --help E:\Projects\ionic>ionic start --help ionic start - Create a new project This c ...

  4. 通过网络路径获取的图片 btye 图片流互转

    楼主有一个需要用户用的网站要上传图片,图片不保存到网站,而是要专门存放到一个图片服务器上面,于是需要通过byte的形式来传输 之前写的一个本地图片流转于byte互转 后来发现通过网络路径获取的图片这个 ...

  5. 使用SimpleXML解析xml文件数据

    最近工作要求从一个XML文档中批量读取APK应用数据,自然想到用SimpleXML.经过一段时间摸索,终于成功解析,现在将思路以及代码做下记录: xml文件格式大致如下: <?xml versi ...

  6. Android 开发笔记___drawable

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. HTML学习笔记 div布局及table布局案例 第三节 (原创)参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. phpstorm2016.3+xdebug调试

    1.首先打开PHP配置文件,php.in修改相关xedebug配置 ; XDEBUG Extension [xdebug] zend_extension ="d:/wamp64/bin/ph ...

  9. Flex布局(引用阮一峰大神)

    Flex 布局教程:语法篇 http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex 布局教程:实例篇 http://www.ruan ...

  10. WebService--jax

    使用javax.jws编写webservice服务: 服务端: 1,定义webservice接口: package com.jws.serviceInterface; import javax.jws ...