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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android listview 实现列表多选

    Android listview 实现列表多选最终实现效果:

    2022年7月17日
  • 电脑预览,电脑怎么预览psd格式?[通俗易懂]

    电脑预览,电脑怎么预览psd格式?[通俗易懂]经常使用PS的朋友们都知道Photoshop文档的默认格式是psd格式,可是在电脑上可能不能像jpg图片一样显示缩略图预览。遇到这种情况我们该怎么办?要是电脑上并没有安装PS软件又该怎么预览?下面我们就一起来看看哪些解决方法。步骤如下:方法一:有安装PS,使用PS软件预览。1.首先双击桌面的PS软件,等待进入PS,如图所示。2.进入PS初始界面,将你需要预览psd格式图片打开,就可以在软件中看到图…

    2022年4月30日
  • 免费申请国外免费域名超详细教程「建议收藏」

    免费申请国外免费域名超详细教程「建议收藏」1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

    2022年6月30日
  • MySQL数据库备份和恢复方案小结[通俗易懂]

    MySQL数据库备份和恢复方案小结[通俗易懂]这两天在调研MySQL数据库的备份和恢复方案,备份对象是对大量Innodb表,或者加上少量的MyISAM表。 InnoDB备份常见问题:文件一致性:数据文件、缓存、日志文件必须保持严格一致。加锁的方法没法保证一致性,因为InnoDB后台刷新数据是异步进行的。数据一致性:不能一次锁住一张表,这个备份的是不同时刻的表数据;如果一次锁住所有表,innodb的mvcc机制会增加undo日志…

    2022年6月6日
  • 进程处于挂起状态表示_挂起进程转换图

    进程处于挂起状态表示_挂起进程转换图文章目录引言挂起状态是什么?挂起状态和阻塞状态有什么区别?如何主动挂起程序总结引言以前对于这个概念始终比较模糊,遂在解决后记录博客,希望帮助到有同样问题的朋友。挂起状态是什么?我们一般认为进程有五个状态,即新建态,就绪态,阻塞态,运行态,终止态。而在这些状态之外还存在着一个状态,我们称之为挂起状态,它既可以是我们客户主动使得进程挂起,也可以是操作系统因为某些原因使得进程挂起。总而言之引入挂起状态的原因有以下几种:用户的请求:可能是在程序运行期间发现了可疑的问题,需要暂停进程。父进程的请求:

    2022年10月29日
  • setUp()和tearDown()函数

    setUp()和tearDown()函数

    2022年4月2日

发表回复

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

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