我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众。

因为 Python 是一门解释性的语言,离开了 Python 解释器,Python 无法执行。但是我们还有相应的解决方案,答案就是打包成 .exe 可执行文件

当然这篇正文前废话两句,一是看过之前网上的一些吐槽,因为没有学过编译原理,所以也不能不懂乱讲,姑且称之为半引用吧:

Python 的哲学是所见即所得,脚本类语言也注定了其加密性不如其他编译生成的语言(比如C++,JAVA,C#)就算封装为 exe,源代码费点力气,也几乎等于可见的,所以,打包 Python 为 exe 更多是为了易用,希望保留源码为自己心血的,还是尝试别的语言,或者纯粹采用卖服务的方式(云平台,web框架,不需要见源码就在客户端使用)

 二是整个摸索过程极其凌乱,相关教程网上也比较少,所以我估计有些地方,我说的也不太多,还请多参照官方文档(虽然自我感觉被官方文档坑了)

这里只介绍 Python3,windows7 下的解决方案,Python2 的相关方案非常多,请自行摸索

首先是安装 Python3 了,去官网下,我的是 3.4 版的,可惜看的不少教程都是针对 3.3 版的。

但是我可以很负责任的说,个人情况是在 3.4 下 cxfreeze.bat 我在 script文件夹里面完全找不到,而且我安装好后直接敲那个命令出来是气死人的不是批处理命令提示

我真想说,看 DOS 一次次弹出这个的时候,真的想吐血,真的心中一万匹草泥马奔腾而过

 但是问题还要解决啊,那么怎么做呢?

首先你先要让 DOS 认识 Python 这个命令,怎么做呢?

计算机 -> 系统属性 -> 高级系统设置 -> 环境变量 -> 系统变量

path 里面加上你的 Python3 所在的目录,前后相隔用; 当然也可以在 Dos 里面设置,但是 Dos 里面设置感觉比 GUI 设置还麻烦

我的是这样子的:

然后就是主角出场了, cx_Freeze,帮助我们把 Python3 文件打包成 exe文件的工具,首先,要下载下来用,资源挂载 sourceforge 上

http://sourceforge.net/projects/cx-freeze/files/

选个合适自己机器的下载吧,我下载的是最新版的 windows64 位版本

然后点开安装,因为下好各种找不到 bat 折腾了半天。

我觉得千言万语都不如看这两个网页有用,官方例子(http://t.cn/REli4pL)和使用方法(http://t.cn/REliK8R)

比较赞的是,用这个工具(目前)没有出现对中文支持不良好的例子,我也在此放在自己的例子

将你的源代码和 setup.py 放在同一路径下,cd 到对应的路径,执行如下命令

耐心等待即可,这个工具会帮你把必要的库也打包进去,当然能不能打第三方库未测试(应该可以)

放上我设置的对应代码

hello.py

# -*- coding: utf-8 -*-
import time
while True:
   print("一分钟显示一次")
   time.sleep(60)  # Delay for 1 minute (60 seconds)

setup.py

from cx_Freeze import setup, Executable

executables = [
   Executable('hello.py')
]

setup(name='hello',
     version='0.1',
     description='Sample cx_Freeze script',
     executables=executables
     )

当然肯定还可以进阶设置,我这个只是最简配置,点开 exe 直接用那种,比如那个 .ico 参数设置下,应该是可以把你生成的 exe 的图标设置为你设置的 icon 样

如果觉得 exe 一下就跳掉了,print 信息都看不到的话,像我代码示例里面一样,导入 time 模块,加上 sleep 方法,delay 一下就可以了~

转载:http://jimmy66.com/1102.html

Python学习交流群:238757010

将 Python3 文件打包成 exe 文件的更多相关文章

  1. Pycharm下将py文件打包成exe文件

    1. 在PyCharm下安装PyInstaller 1. 首先,打开自己要发布的工程   2. 点击底部的[Terminal]打开终端,中输入命令pip install pyinstaller后回车, ...

  2. 将py文件打包成exe文件

    PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行.在不同的平台上使用 PyInstaller 工具的方法是一样的,它们支持的选项也是一 ...

  3. pyinstaller相关问题 & pygame文件打包成exe文件 & 武装飞船 & 飞机大战

    自己照书写了一个飞机大战游戏的python程序,想把它打包成一个exe文件,在查阅相关教程并经过数次尝试后终于成功. 安装打包应用 pyinstaller 在cmd命令窗口下pip install p ...

  4. 将python项目.py文件打包成.exe文件

    安装pyinstaller包 pip3 install pyinstaller 如果不行 pip3 install pyinstaller -i https://pypi.doubanio.com/s ...

  5. Python文件打包成EXE文件

    工具:pyinstaller 安装:pip install pyinstaller 使用: 1 将依赖文件集中到一个文件夹:           pyinstaller -D -w xxx.py    ...

  6. [Python]项目打包:5步将py文件打包成exe文件 简介

    1.下载pyinstaller并解压(可以去官网下载最新版): http://nchc.dl.sourceforge.net/project/pyinstaller/2.0/pyinstaller-2 ...

  7. [Python]项目打包:5步将py文件打包成exe文件(转)

    1.下载pyinstaller并解压(可以去官网下载最新版): http://nchc.dl.sourceforge.net/project/pyinstaller/2.0/pyinstaller-2 ...

  8. .py文件打包成.exe文件

    # 使用pyinstaller模块 # pip install pyinstaller # 在命令行执行 pyinstaller -F xxx.py

  9. python的py文件打包成exe

    一.首先需要安装Pyinstaller-- 使用pip来安装模块 (我电脑上装的是python的一个编译环境Anaconda,如果电脑上装的是python自带的IDE的话,就直接进入python的安装 ...

随机推荐

  1. sqoop导数据到hive报错

    [root@hadoop1 conf]# sqoop import --connect jdbc:mysql://192.168.122.15:3306/company --username sqoo ...

  2. PAT——1039. 到底买不买

    小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...

  3. Spotlight On Oracle安装和使用

    Spotlight On Oracle安装和使用 软件版本:Version: 5.0.1.1022 注册码:063920179532918005749 Site Message:Quest Free ...

  4. macOS:按钮类型

    for (int i = 0; i < 10; i++) { for (int j = 1; j < 16; j++) { NSButton *btn = [[NSButton alloc ...

  5. Java单例模式几种实现方式

    在平时的工作.学员的学习以及面试过程中,单例模式作为一种常用的设计模式,会经常被面试官问到,甚至笔试会要求学员现场默写,下面将会就单例模式的实现思路和几种常见的实现方式进行简单的分享. 单例模式,是一 ...

  6. 含头结点的单链表C++实现(包含创建,查找,插入,追加,删除,反转,排序,合并,打印,清空,销毁等基本操作)

    温馨提示:下面代码默认链表数据为字符型,本代码仅供参考,希望能对找到本随笔的人有所帮助! #include<iostream> using namespace std; typedef s ...

  7. 【转】如何快速定位JVM中消耗CPU最多的线程?

    [转]如何快速定位JVM中消耗CPU最多的线程? https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487802&id ...

  8. Redis笔记 -- 链表和链表节点的API函数(三)

    链表和链表节点API 函数 作用 时间复杂度 listSetDupMethod 将给定的函数设置为链表的节点值复制函数 复制函数可以通过链表的dup属性直接获得,O(1) listGetDupMeth ...

  9. windows下开启 PHP扩展Redis

    Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  10. Dynamics CRM plugin调试方法之Profiler

    https://blog.csdn.net/vic0228/article/details/72903815