参考链接: 在Python中使用CX_Freeze

Python是一个脚本语言,被解释器解释执行。它的发布方式:

.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)  .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。  可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。

本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍cx_Freeze,其它仅作比较和参考。

Freezing Your Code

各种打包Python程序对比  点击打开链接

各种打包工具的对比如下(来自文章Freezing Your Code):

SolutionWindowsLinuxOS XPython 3LicenseOne-file modeZipfile importEggspkg_resources supportbbFreezeyesyesyesnoMITnoyesyesyespy2exeyesnonoyesMITyesyesnonopyInstalleryesyesyesnoGPLyesnoyesnocx_FreezeyesyesyesyesPSFnoyesyesnopy2appnonoyesyesMITnoyesyesyes

我要打包的环境是Linux+Python3,故根据情况我们采用cx_Freeze打包程序

Python3程序打包步骤:

1、下载cx_Freeze-4.3.4.tar.gz源码

2、解压源码到某个目录

3、打开终端到解压目录

4、执行python3 setup.py build

这编译会出错

build/temp.linux-x86_64-2.7/source/bases/Console.o:在函数‘GetImporterHelper’中: /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:211:对‘PyObject_CallMethod’未定义的引用 /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:215:对‘PyErr_Clear’未定义的引用 build/temp.linux-x86_64-2.7/source/bases/Console.o:在函数‘GetDirName’中: /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:66:对‘PyString_FromStringAndSize’未定义的引用 build/temp.linux-x86_64-2.7/source/bases/Console.o:在函数‘FatalError’中: /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Console.c:24:对‘PyErr_Print’未定义的引用 /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Console.c:25:对‘Py_FatalError’未定义的引用 build/temp.linux-x86_64-2.7/source/bases/Console.o:在函数‘SetExecutableName’中: /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:93:对‘PyString_FromString’未定义的引用 /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:115:对‘PyString_FromStringAndSize’未定义的引用 /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Common.c:136:对‘PyString_FromString’未定义的引用 build/temp.linux-x86_64-2.7/source/bases/Console.o:在函数‘FatalError’中: /home/bill/Downloads/cx_Freeze-4.3.3/source/bases/Console.c:24:对‘PyErr_Print’未定义的引用

查了一下  网上有修改setup.py  将其中的if not vars.get("Py_ENABLE_SHARED", 0):修改成if True:

就可以了

5、执行安装命令sudo python3 setup.py install

6、此时再次打开一个终端,输入命令:cxfreeze --help有内容说明安装

7、打包命令输入:

查询版本:

cxfreeze --version  打包文件(包含运行需要的文件):

cxfreeze ~/Desktop/Nt2000_Python1/Nt_Main.py --target-dir ~/Desktop/setup

格式为:cxfreeze  文件绝对路径 --target-dir 打包到目标可执行文件夹路径

打包成一个可执行文件命令:

cxfreeze D:/hello.py --target-dir D:/123 --no-copy-deps

[转载] Linux+树莓派3开发总结——cx_Freeze打包Python3程序(工程文件)相关推荐

  1. 使用cx_freeze打包Python程序

    使用cx_freeze打包Python程序 [Python俱乐部] 使用cx_freeze打包Python程序 平时打包Python查询都用的是py2exe,发现还有个打包程序cx_Freeze,好像 ...

  2. mac打包python3程序

    1. 下载安装py2app pip3 install py2app 2. 创建setup.py文件 py2applet --make-setup XXX.py 3. 发布应用 python3 setu ...

  3. cocos2d x游戏开发系列教程 中国象棋01 工程文件概述

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 上一篇博 ...

  4. cx_freeze打包python3.6成exe/msi应用

    前言 因项目需要使用客户端采集用户数据库表信息,需要提供给客户在本地运行采集,因此使用了python编写了程序,打包成可执行文件供用户下载使用.编写了使用了最新版本的python3.7,打包时各种问题 ...

  5. Metabase在linux二次开发编译环境搭建(之一---下载文件)

    一.下载JDK8(如果你已安装过jdk8,此步骤可以略过)    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...

  6. linux写脚本:一键更新打包部署maven工程

    有条件可以使用jenkins这种工具 Jenkins 这东西配来配去两次没配明白,还是有一些门槛的,不想搞了. 就想整个命令,没想每次上传发版包而已,只有一个工程,直接写个脚本就行. 1.安装git. ...

  7. 利用pyinstaller打包python3程序

    pyInstaller是一款用于将pyhon程序打包成exe文件的工具,pyInstaller不是一个python的包, 只需要把pyInstaller的文件下载下来放到任意为止都可以,也就是说pyI ...

  8. Linux之IFS间隔符、C编程、Makefile工程文件、gdb调试、宏定义、预处理、assert和调试用特殊的宏

    1 间隔符 在shell下的for循环语句中,容器中,各个元素之间 是通过 间隔符 来分开的 默认情况下:读取 列表中的值----以 空格.TAB.换行  为间隔符 列表可以为:     常量    ...

  9. c#开发的漂亮高仿QQ打包安装程序界面

    c#开发的触摸屏打包安装程序:仿QQ登录密码输入框.自定义软件键盘:c#开发的仿QQ2013界面用户美化打包程序:整个程序使用vs2010开发:支持所有程序打包安装:源代码开放,可自己修改效果图如下: ...

最新文章

  1. window.open 实现session隔离_InnoDB存储引擎MVCC实现原理
  2. mysql-proxy myrelay_myrelay
  3. sqlserver date类型和字符串比较_VB编程基本数据类型完整剖析
  4. LeetCode 474. 一和零(01背包动态规划)
  5. python编程快速上手实践项目答案_python编程快速上手之第4章实践项目参考答案...
  6. 安卓9 怎么运行老程序_PLC怎么连接电脑?怎么把在电脑编程好的程序放入PLC运行?...
  7. AI已火,宗教当生,硅谷出了个“洪秀全”
  8. 一个小偷写给失主的信【爆笑】
  9. python算法之归并排序
  10. JAVA遇见HTML——JSP篇 阶段项目总结 model1模型实现商品浏览记录
  11. consul服务注册与服务发现的巨坑
  12. 大漠找图算法_新手用大漠找图识别数字,怎么将数字组合起来呢
  13. fckeditor java_FCKeditor在线编辑器(Java)
  14. linux键盘按键驱动
  15. 翻译:软件测试的未来五个趋势
  16. php 音频转换 WAV转MP3
  17. (九)学习笔记autoware源码core_planning(lane_select)
  18. (4)bootstrap标签页
  19. Latex证明环境:白方块/黑方块
  20. Tensorflow2.1入门 第六章:循环神经网络

热门文章

  1. 【NOIP1998】【Luogu1008】三连击(枚举)
  2. linux 域名对应ip 端口号,【原创】Linux基础之测试域名IP端口连通性
  3. java 调用c 的dll,java如何调用C的dll
  4. Lc19删除链表的倒数第N个节点
  5. mysql 5.7 延迟同步_完全解决 MySQL 5.7 主从复制的延迟问题
  6. 数据结构—树的基本概念与性质(思维导图)
  7. oracle当前用户创建的表不可见?
  8. 2016蓝桥杯C++A:网友年龄
  9. hihocoder 1449 : 后缀自动机三·重复旋律6(后缀自动机)
  10. bzoj 2751: [HAOI2012]容易题(easy)