我们用 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. Django中的CBV和FBV

    Django中的CBV和FBV 一.  CBV CBV是采用面向对象的方法写视图文件. CBV的执行流程: 浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执 ...

  2. [LuoguP3668][USACO17OPEN]现代艺术2

    [LuoguP3668][USACO17OPEN]Modern Art2(Link) 现在你有一块长为\(N\)的画布,每次可以选择一段连续的区间进行颜色填涂,新颜色会覆盖旧颜色.每一次填涂都要耗费一 ...

  3. 模块XXXX可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86(32位)x64(64位)版本兼容。

    最近自己在编写ActiveX控件.遇到的麻烦事不少. 今天遇到了这个问题“模块XXXX可能与您正在运行的Windows版本不兼容.检查该模块是否与regsvr32.exe的x86(32位)x64(64 ...

  4. 解决dpdk中出现IOMMU not found的问题

    问题 在使用VFIO前,需要在BIOS打开VT-x和VT-d,想把一个PCIe网卡透传到虚拟机中,发现虚拟机启动失败,提示IOMMU没有找到. 输入以下命令确定vt-d开启 dmesg | grep ...

  5. 我的QT5学习之路(三)——模板库、工具类和控件(下)

    一.前言 作为第三篇的最后一部分,我们来看一下Qt的控件,谈到控件,就会让人想到界面的美观性和易操作性,进而想到开发的便捷性.作为windows界面开发的MFC曾经是盛行了多少年,但是其弊端也随着其他 ...

  6. alibaba之Nacos

    本文为转载文章 原文链接:https://windmt.com/2018/11/09/intro-to-spring-cloud-alibaba-nacos/ 上个月最后一天的凌晨,Spring Cl ...

  7. 用 map 表达互斥逻辑

    在这个开发周期遇到这样一个需求: 管理员可以给子账号配置权限,有些权限存在互斥不可同时勾选,比如 审核员和代采.审核和采购员不可同时勾选 之前同事实现的方式如下: 这样每添加一个互斥关系就要遍历一次, ...

  8. code#5 P3 我有矩阵,你有吗?

    我有矩阵,你有吗?   时间限制: 1.0 秒 空间限制: 128 MB 相关文件: 题目目录 题目描述 企鹅豆豆手里有两个 01 矩阵 A 和 B.他可以进行两种操作: 选择 A 矩阵的一行,然后把 ...

  9. mysql数据库的系统操作基本操作

    本文主要总结并记录一下简单且常用的mysql 在cmd 窗口中操作的基本命令 命令停止mysql 数据库服务 1.(cmd)命令行 启动:net start mysql 停止:net stop mys ...

  10. python使用tablib库生成xls表格

    参考文档:http://python-tablib.org Tablib是一个MIT许可的格式不可知的表格数据集库.它允许您导入,导出和操作表格数据集.高级功能包括隔离,动态列,标签和过滤,以及无缝格 ...