cx_freeze的安装使用

技术标签: cx_freeze  python  打包  .exe

python是一个非常非常优秀的编程语言,它最大的特性就是跨平台。python程序几乎可以在所有常见的平台中进行使用,而且大部分无需修改任何代码!不过,python也有一点点小缺憾(这个是由于自身本质决定,不能叫缺憾,不过在这就这么称呼吧),那就是python程序的执行必须要有解释器的参与。那么python的程序如何在没有解释器的平台上使用呢?很简单,将python程序打包成exe可执行文件即可!

 在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个。pyinstaller打包很好,但是操作工序较为复杂。so个人还是推荐cx_freeze。

    首先:cx_freeze下载地址: http://sourceforge.net/projects/cx-freeze/files/ 

    接着,介绍一下cx_freeze的使用方法。

第一步:检查cx_freeze是否安装正确。

运行cmd,切换到cxfreeze.bat,然后执行 "cxfreeze -h" 看看能否出效果

如果安装正确,如图显示

http://img1.51cto.com/attachment/201109/125956686.jpg

如果显示的如下图片,请查看一下你的python安装路径

http://img1.51cto.com/attachment/201109/130142751.jpg

修改路径的办法

打开你的python安装文件夹,例如我的python安装文件夹在G盘,那么用记事本打开G:\python\Scripts\cxfreeze.bat

如图

http://img1.51cto.com/attachment/201109/130504752.jpg

修改路径到自己的安装路径

http://img1.51cto.com/attachment/201109/130537351.jpg

然后保存,关闭记事本,重新检验,看看是否正确。

第二步:如果安装正确,那么接下来的事情就非常简单了

正式开始打包,命令为:cxfreeze hello.py --target-dir dist

 

命令解释:hello.py 是你要打包的主文件、启动文件

 

            Dist为要目标文件夹,打包后会生成dist目录,里面就有打包后的可执行文件。

注意:

  1. 只能指定一个要打包的模块,也就是启动模块
  2. 所有.py文件都不能有中文字符,否则会出现编码异常。
  3. 发布后,可执行文件执行路径不能有中文(最好也不要有空格)。
  4. 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。 
    if __name__ == "__main__": 
    main()
  5. 打包成功的图片:
  6.  

http://img1.51cto.com/attachment/201109/131236164.jpg

 

http://img1.51cto.com/attachment/201109/131329257.jpg

  1. 双击生成的exe文件可以使用了是不是很高兴呢?怎么觉得启动的时候后面有个黑糊糊的窗口不舒服?那你在生成命令里面加个参数吧!例子:

cxfreeze hello.py --target-dir dist --base-name=123

总结:对于cx_freeze,已经很久没有更新,用的比较多的还是后面两种,后面文章都有讲述:对于pyinstaller和py2exe两种把Python文件打包成exe的可执行文件的方法,都有各自的优缺点。但是最终目的都是为了在没有Python环境下的普通 Windows系统的电脑中可直接运行,这点还是很不错的。我本人比较偏向于pyinstaller,它(-F指令下)生成的exe文件,集成了所需要的所有资源(所以exe文件 相对较大),可直接拷贝到其他电脑中使用。对于py2exe来说,限制就比较多了,它所需要用到的外部资源都在dist目录下,想要在其他电脑中使用就必须把整个dist文件夹都拷贝过去。而且经测试在64位机器生成的exe无法再32位机器上打开使用。

大家根据自己的需要,择优选择就行了

来源:网络


智能推荐

Python安装cx_Oracle的问题

Python安装调用Oracle组件 由于要将原有Ubuntu18.04环境的内容迁移到比较老的Fedora22上,所以需要重新Pip安装组件 首先安装cx_Oracle就一直报错,显示gcc无法编译,使用pip install cx_Oracle怎么样都无法安装。 后来通过 python -m pip install 用于安装上,并且安装好了实例 都安装好了运行python程序又出现openpy...

cx-oracle安装

下载cx-oracle,复制文件到pip安装的文件夹下 https://pypi.org/project/cx-Oracle/7.0.0/#files pip安装在哪里?   文件放到C:\ProgramData\Anaconda3\Scripts目录 进到C:\ProgramData\Anaconda3\Scripts,执行PIP命令安装     参考文档:(转载,...

用conda安装python的包,如cx_Oracle

转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/85455270   注:本机安装了Anaconda 打开cmd,输入: 即可得到已安装的python包。 cx_Oracle没有在显示的包的列表里,说明这个包还没安装,现在我需要使用这个包,则需要先安装这个包。安装这个包...

cx_oracle在pycharm里面的安装

原文地址:https://blog.csdn.net/peihexian/article/details/81361150 我的环境如下: windows7,python 3.7,flask ,oracle client 11.2 ,现在想要安装cx_oracle去连接oracle,折腾了好几个小时,凸(艹皿艹 ) 先说关键点:1.不要使用pip install cx_oracle的方式安装!!!...

安装cx_Oracle 6

首先声明,本文是在Linux 环境下进行安装。不涉及Windows 版安装。 一、 了解cx_Oracle 安装要求 要python 通过cx_Oracle 6 操作Oracle 数据库,以下几个条件是必须的: Python 2.7 或者3.4 及更高版本。 Oracle 客户端库文件. 我们可以通过安装Oracle 客户端或者oracle 完整版软件来获得。Oracle 的版本最低要求是11.2...

猜你喜欢

windows安装cx_Oracle

先描述下本人的计算机环境:win10 64位, 这个项目用的python3.4(64位) (其实系统默认使用的时python3.6) 个人学习python的认识: 最好用的东西是python 丰富的包, 而最容易带来麻烦的也是这些包。 最近开发一个django项目需要从公司Oracle数据库 中获取数据, 两个种环境都要用到,Linux下大多数情况下直接pip/easyinstall 安装或者源码...

Python安装cx-oracle

一、查看python版本 二、下载cx_oracle  https://pypi.org/project/cx-Oracle/#files 注意:1、cp* 要和安装的python版本一致            2、cx_oracle和python的位数要一致 三、安装 cx_oracle 1、cmd执行 : pip insta...

「解放双手」老舅教你VS Code Disco

微信搜索【前端食堂】你的前端食堂,记得按时吃饭。 本文已收录在前端食堂 Github https://github.com/Geekhyt/front-end-canteen,感谢Star。 这是最好的时代,也是最坏的时代。 今年听到过最浪漫的一句话:我们在键盘上留下的余温,也将随时代传递到更远的将来。 感觉让理性的技术人多了份柔光滤镜。 也许你收藏了千篇万篇VS Code快捷键,很可惜却没能记住...

Linux(3):Shell基础

Linux(1):简介与系统安装:https://mp.csdn.net/postedit/88633915 Linux(2):常用命令:https://mp.csdn.net/postedit/88639718 鸟哥的Linux私房菜:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/86.html 目录 9 Shell基...

C# wpf grid面板应用(4)

1新建一个项目,如下图所示 分析代码;Grid.ColumnDefinitions可以定义列宽 Grid.RowDefinitioons可以定义行高 Grid.column=“0” 代表第一列。 grid.Row=“1” 代表第二行。 Grid.columnspan=“2” 表示向右合并2个列 Grid.RowSpan=&ld...

问答精选

typescript - conditional paramteres

I want to restrict one of the constructor parameter of number type to assign only the values from some range. I know how to archieve similiar effect with setter and conditional statement. I was wonder...

My CSV writer code writes separators between characters and not strings

I have written code which writes to a CSV file, reading from another file. I want to write out particular columns from the input file, so I append them to a list, then separate them by a comma and add...

How to open a Xamarin Forms page from a Xamarin Droid Activity from a onclick listener

I am working on adding an assist feature to my app that when the user holds down on the home button an android activity opens with cards that the user can click on that then opens the xamarin forms pa...

Validation User Mysql Java?

I did this query with this development but I have a problem to receive the API I try to validate Users Login But always the API RESPONSE LOGIN SUCCESS I did this with Java Spring Boot and Mysql Here's...

How convert to array or json php soap __dorequest response?

this is _dorequest response. Response is xml string data. I tried convert with simplexml_load_string() function and later return array but function result is empty. '<env:Envelope xmlns:env="h...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答