py2exe用法_pynput库

py2exe用法_pynput库一、简要py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,目的就是在没有安装python的windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、简要

py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,目的就是在没有安装python的windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。

py2exe是发布在开源许可证下的。

二、如何安装py2exe

可以直接在命令行下面执行

easy_install py2exe

 来进行安装

然后使用按照如下方法进行测试

 

E:\>python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import py2exe
>>>

 

如果没有任何报错,那么就证明安装成功了

但是注意,这里经常见到这样的报错:

  no module named machinery

这是因为,我们安装的py2exe版本太高了,py2exe模块0.9版本只支持python3以上,要想在python2.7中运用,就要下载0.6 版本的py2exe,地址如下:

http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/

或者执行 

easy_install py2exe-0.6.9.win32-py2.7.exe


通常情况下使用easy_install 下载并不好用,还是需要在官网下面下载下来。

在官网下载的时候,要注意,选择合适的版本,

32位的下载  py2exe-0.6.9.win32-py2.7.exe

64位的下载py2exe-0.6.9.win64-py2.7.amd64.exe

官网和easy_install 都安装不上去的,可以在下面的网址去下载:

http://download.csdn.net/detail/qiqiyingse/9799260

但是再官网下载下来之后,我们再安装的时候还是会遇到下面的问题:

Python version 2.7 required, which was not found in the registry 

解决方案一(针对32bit):

       最简单的方法是将已安装的64bit的python卸载、重新安装32bit。

解决方案二(针对64bit):

 对于想用python64bit不想更换回32bit的,需要借助一些其他人开发的库,这里收集了很多python官方不支持的扩展包 

Unofficial Windows Binaries for Python Extension Packages;

解决方案三(极力推荐)

在 py2exe-0.6.9.win32-py2.7.exe 已经下载完成的时候

建立一个文件 register.py 内容如下. 然后执行该脚本.

import sys
  
from _winreg import *
  
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
  
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
    installpath, installpath, installpath
)
  
def RegisterPy():
    try:
        reg = OpenKey(HKEY_CURRENT_USER, regpath)
    except EnvironmentError as e:
        try:
            reg = CreateKey(HKEY_CURRENT_USER, regpath)
            SetValue(reg, installkey, REG_SZ, installpath)
            SetValue(reg, pythonkey, REG_SZ, pythonpath)
            CloseKey(reg)
        except:
            print "*** Unable to register!"
            return
        print "--- Python", version, "is now registered!"
        return
    if (QueryValue(reg, installkey) == installpath and
        QueryValue(reg, pythonkey) == pythonpath):
        CloseKey(reg)
        print "=== Python", version, "is already registered!"
        return
    CloseKey(reg)
    print "*** Unable to register!"
    print "*** You probably have another Python installation!"
    
if __name__ == "__main__":
    RegisterPy()

它执行完毕之后,再去安装这个东西,就OK了

 三、py2exe的使用

自己创建一个为helloworld.py的python脚本,如果你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,

那么首先你应写一个用于发布程序的设置脚本例如setup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:

from distutils.core import setup
import py2exe
  
setup(console=["helloworld.py"])


然后按下面的方法运行
mysetup.py:

 

python setup.py py2exe


 
上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。
如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。
dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

默认情况下,py2exe在目录dist下创建以下这些必须的文件:
1、一个或多个exe文件。
2、python##.dll。 
3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。
4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo
上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=[“helloworld.py”]替换为windows=[“myscript.py”]既可。

py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。
运行下面个命令,将显示py2exe命令的所有命令行标记。

python setup.py py2exe --help

easy_install py2exe-0.6.9.win32-py2.7.exe
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195066.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月24日 下午4:15
下一篇 2025年10月24日 下午4:43


相关推荐

  • 大整数乘法的详解

    大整数乘法的详解一.问题由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算,于是产生了大数运算。尤其是乘法运算,下面就是大整数的乘法的过程(加减法都一样的原理)。二.解决问题的方法方法一(传统的相乘逐步相加)乘法规律,一个数的第i位和另一个数的第j位相乘,一定会累加到结果的第i+j位,结果的数组一个数组元素存2位数,最后对结果整除得到进位,mod得到余数就是i+j位的数字,最后打印出来。对于大整数比较方便的输入方法是,.

    2022年6月2日
    41
  • Cenos7安装helm3(及常用命令)

    Cenos7安装helm3(及常用命令)

    2021年5月14日
    148
  • 课程设计酒店管理系统_管理系统课程设计

    课程设计酒店管理系统_管理系统课程设计1.题目要求•顾客入住、退房•房间预订•换房处理•续住管理•折扣2.架构选择:B/SB/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。3.语言选择:PythonhtmlccsJavaScripthtml…

    2025年11月24日
    6
  • 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试

    学习 Spring Boot:(二十九)Spring Boot Junit 单元测试前言 JUnit 是一个回归测试框架 被开发者用于实施对应用程序的单元测试 加快程序编制速度 同时提高编码的质量 JUnit 测试框架具有以下重要特性 测试工具测试套件测试运行器测试分类了解 Junit 基础方法加入依赖在 pom xml 中加入依赖 lt dependency gt lt groupId gt junit lt grou

    2025年12月4日
    6
  • 关于淘汰85%查看面试官百度开发者面对的问题

    关于淘汰85%查看面试官百度开发者面对的问题

    2022年1月2日
    49
  • jenkins 邮件_邮件发送服务

    jenkins 邮件_邮件发送服务前言前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。安装EmailExtensionPlugin插件jenkins首页-

    2022年7月29日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号