py2exe使用方法详解
python学习教程之使用py2exe打包

python学习教程之使⽤py2exe打包前⾔本⽂主要给⼤家介绍了关于python使⽤py2exe打包的相关内容,分享出来供⼤家参考学习,下⾯话不多说了,来⼀起看看详细的介绍吧。
遇坑之前经过折腾,pyinstaller打包⽂件可以在别的windows7上运⾏。
但是,mfk, 客户说是xp系统。
崩溃使⽤pyinstaller各种折腾,打包出来的依然是不是有效的win32程序,各种报错。
后来尝试使⽤ py2exe 打包使⽤1、安装不废话,下载exe版,傻⽠式安装2、使⽤编写类似⼀个 setup.py ⽂件,写各种配置(下边有)调⽤命令python setup.py py2exe或者在setup.py下添加如下语句,点击⽂件⾃动运⾏sys.argv.append('py2exe')问题1、不是有效的win32程序换32位的python,其他模块都重装,包括pyqt52、py2exe UnicodeDecodeError: 'gbk' codec can't decodepy2exe 的runtime.py ⾥打开⽂件制定为utf-8with open(target.script, "U",encoding="UTF-8") as script_file:3、编译PyQt5 异常把⼀句 Exception, e 该为 Exception as e 就好了4、could not find or load the Qt platform plugin "windows"把 C:\Python34\Lib\site-packages\PyQt5\plugins 下的 platforms 拷贝到打包⽬录下的platforms搞定5、找不到 msvc**100.dll 问题把system32 ⽬录下的 msvc**.dll 的三个dll⽂件拷贝到打包⽬录下分享⼀下完成的打包脚本from distutils.core import setupimport py2exeimport sysimport osimport globimport shutilimport msvcrt#this allows to run it with a simple double click.sys.argv.append('py2exe')PYTHON_HOME = os.getenv('PYTHON_HOME')TARGET_DIR = '../build2'# 删除原来⽣成的路径if os.path.exists(TARGET_DIR):print("是否删除⽂件夹(y/n)\t" + os.path.abspath(TARGET_DIR))d = msvcrt.getch()if d == b'y':shutil.rmtree(TARGET_DIR)print(os.path.abspath(TARGET_DIR)+' 被删除')def find_data_files(dlist,source,target,patterns):# 是否有特殊符号if glob.has_magic(source) or glob.has_magic(target):raise ValueError("Magic not allowed in src, target")ret = dlistfor pattern in patterns:# 给pattern 上添加⽬录pattern = os.path.join(source,pattern)# 通过pattern寻找满⾜条件的⽂件for filename in glob.glob(pattern):# 判断⽂件是否存在if os.path.isfile(filename):# 获取相对source 的相对路径relP = os.path.relpath(filename,source)# 设置为⽬标路径targetpath = os.path.join(target,relP)# 获取⽬标⽂件的⽂件夹path = os.path.dirname(targetpath)ret.setdefault(path,[]).append(filename)print('-------------------')print('资源拷贝')data_files = {}# 拷贝xp需要的msvc**100.dllfind_data_files(data_files,'C:/Windows/System32/','',['msvc*100.dll'])# 拷贝pyqt5⾥依赖的dllfind_data_files(data_files, PYTHON_HOME+'/Lib/site-packages/PyQt5/plugins/platforms','platforms',['*.dll']) # 把当前⽬录下ui⽂件夹内容拷贝到⽬标⽂件夹的ui⽂件夹下find_data_files(data_files,'ui','ui',['*.*'])# 拷贝配置⽂件find_data_files(data_files,'config/','config/',['*.*'])# 转成键值对集合data_files = data_files.items()print(data_files)print('--------------------------')OPTIONS = {'py2exe': {"includes": ["sip"],# 导⼊依赖 sip# "dll_excludes": ["MSVCP90.dll","MSVCR100.dll"],# 是否压缩 1 压缩。
电脑上使用Python的方法和步骤解析

电脑上使用Python的方法和步骤解析Python是一种广泛应用于科学计算、数据分析和软件开发的编程语言。
它具有简洁易读的语法和强大的功能,因此受到了众多开发者的喜爱。
在本文中,我们将详细介绍如何在电脑上使用Python,并提供一些实用的步骤和方法。
一、Python的安装首先,我们需要在电脑上安装Python编程环境。
Python可以在官方网站上免费下载,支持多个操作系统,如Windows、Mac和Linux。
根据你的操作系统选择相应的版本,并按照安装向导进行安装。
安装完成后,我们可以通过运行命令提示符或终端窗口,输入"python"命令来验证Python是否成功安装。
如果成功安装,将会显示Python的版本信息。
二、Python的集成开发环境(IDE)Python的集成开发环境可以提供更好的编程体验和开发效率。
有许多流行的Python IDE可供选择,如PyCharm、Spyder和Visual Studio Code等。
这些IDE提供了代码编辑、调试、自动补全和代码提示等功能,使得编写Python代码更加便捷。
在选择IDE时,可以根据个人喜好和需求进行选择。
例如,如果你需要进行科学计算和数据分析,Spyder可能更适合你;如果你需要进行Web开发,PyCharm 可能更适合你。
三、Python的包管理工具(pip)Python的包管理工具pip可以帮助我们安装和管理Python的第三方库。
第三方库是由其他开发者编写的,可以扩展Python的功能。
常用的第三方库有NumPy、Pandas和Matplotlib等。
在命令提示符或终端窗口中,输入"pip install 包名"命令即可安装相应的第三方库。
例如,要安装NumPy库,可以输入"pip install numpy"命令。
四、Python的基本语法和语句Python的基本语法和语句相对简单易懂。
py2exe使用方法

py2exe使用方法一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。
py2exe是发布在开源许可证下的。
二、安装py2exe从/py2exe下载并运行与你所安装的Python对应的py2exe 版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。
三、py2exe的用法如果你有一个名为helloworld.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:# mysetup.pyfrom distutils.core import setupimport py2exesetup(console=["helloworld.py"])然后按下面的方法运行mysetup.py:python mysetup.py py2exe上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。
如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。
dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。
python_打包混淆方案_概述及解释说明

python 打包混淆方案概述及解释说明1. 引言1.1 概述本文将介绍Python打包混淆方案的概念和原理,并详细解释其应用场景和优势。
通过使用打包混淆方案,可以保护源代码的安全性,隐藏算法实现细节,以及提高代码的执行效率。
本文还将提供实施步骤、注意事项和常见问题解答,以及成功案例分析和经验总结。
1.2 文章结构文章主要分为五个部分:引言、Python打包混淆方案概述、Python打包混淆方案的详细解释、实现Python打包混淆方案的步骤和注意事项、结论。
每个部分都涵盖了不同的内容,在整体上构成了一个完整的呈现。
1.3 目的本文旨在帮助读者理解Python打包混淆方案的原理和应用,并提供可行的实施步骤和注意事项。
通过阅读本文,读者将能够掌握如何保护源代码安全、隐藏算法实现细节以及提高代码执行效率等相关技术。
此外,本文还展望了Python打包混淆方案未来的发展趋势,为读者提供对该领域感兴趣人士的思考和探讨。
2. Python打包混淆方案概述2.1 打包和混淆的概念解释在Python开发中,打包是将多个源代码文件和相关资源文件一起打包成一个可执行文件或库的过程。
通过打包,可以方便地发布、分发和使用Python程序。
而混淆是指对源代码进行变换和加密,使其难以理解和逆向工程。
通过混淆,可以增加破解者分析源代码的难度,提高软件的安全性。
2.2 Python中的打包和混淆工具Python中有许多常用的打包工具,如`PyInstaller`、`py2exe`和`cx_Freeze`等。
这些工具可以将Python程序打包成可执行文件或库,并且支持跨平台运行。
另外,Python中也有一些常用的混淆工具,如`pyminifier`、`PyObfuscate`和`pyarmor`等。
这些工具可以对Python源代码进行控制流变换、重命名、字符串加密等操作,使其难以被理解和逆向。
2.3 打包和混淆的应用场景和优势打包和混淆在多个应用场景中发挥着重要作用。
python封装exe方法

python封装exe方法封装Python为可执行文件(exe)的方法有很多,其中常用的方式如下:1. 使用pyinstaller:PyInstaller是一个将Python脚本打包为独立可执行文件的工具。
我们可以使用pip来安装PyInstaller:`pip install pyinstaller`。
安装完成后,使用`pyinstaller myscript.py`命令即可将脚本封装为exe文件。
此外,我们还可以通过不同的选项来自定义打包过程,如指定图标、隐藏代码等。
2. 使用cx_Freeze:cx_Freeze是另一个将Python脚本打包为可执行文件的工具。
安装cx_Freeze:`pip install cx_Freeze`。
然后,创建一个`setup.py`文件,配置文件的内容如下所示:```pythonfrom cx_Freeze import setup, Executablesetupname="MyScript",version="0.1",description="My Python Scrpt",executables=[Executable("myscript.py")]```运行`python setup.py build`命令即可将脚本封装为exe文件。
3. 使用py2exe:py2exe是将Python脚本打包为exe文件的第三方库。
安装py2exe:`pip install py2exe`。
然后,创建一个`setup.py`文件,配置文件的内容如下所示:```pythonfrom distutils.core import setupimport py2exesetupoptions="py2exe":"bundle_files": 1}},windows=[{"script": "myscript.py"}],zipfile=None```运行`python setup.py py2exe`命令即可将脚本封装为exe文件。
python 打包后执行方法

python 打包后执行方法【原创版3篇】篇1 目录1.Python 打包可执行文件的背景和需求2.Python 打包可执行文件的两个常用工具:PyInstaller 和 py2exe3.PyInstaller 的使用方法和注意事项4.py2exe 的使用方法和注意事项5.使用 Enigma Virtual Box 让打包后的文件更完美6.总结篇1正文Python 打包可执行文件的方法Python 作为一门广泛应用于各种领域的编程语言,其可移植性和跨平台性深受开发者喜爱。
然而,在使用 Python 编写程序时,我们可能会遇到需要在没有安装 Python 的环境下运行程序的需求。
为了满足这一需求,我们需要将 Python 程序打包成可执行文件,以便在其他计算机上直接运行。
本文将介绍两种常用的 Python 打包工具:PyInstaller 和py2exe,以及它们的使用方法和注意事项。
一、Python 打包可执行文件的背景和需求Python 程序通常需要依赖本机安装的 Python 库。
当我们需要在没有安装 Python 的机器上运行程序时,就需要将 Python 程序及其依赖库打包成一个可执行文件。
这样,接收者无需安装 Python 环境,即可直接运行我们打包好的程序。
二、Python 打包可执行文件的两个常用工具:PyInstaller 和py2exe目前,有两个比较好用的 Python 打包工具:PyInstaller 和 py2exe。
它们分别适用于不同的平台。
1.PyInstaller:这是一个跨平台的 Python 打包工具,可以应用在Windows、Linux 以及 Mac OS X 上。
2.py2exe:这是一个主要用于 Windows 平台的 Python 打包工具。
三、PyInstaller 的使用方法和注意事项1.使用 PyInstaller 的步骤:首先,需要使用 pip 安装 PyInstaller。
py2exe使用方法超详细解析(有截图)

py2exe使用方法详解最近有很多朋友对网上的py2exe使用教程看不懂,我在这里发布图文详解。
平台:python2.51py2exe:0.69 for python2.5这里以打包e://hello.py为例第一步:在e盘新建hello.py:helo.py代码如下:--------------------print "hello"raw_input()--------------------图片:第二步:可以在任何路径任何位置新建一个名为setup.py的文件,这里把setup.py建在e盘根目录e:\setup.py:代码如下:from distutils.core import setupimport py2exesetup(console=[r’e:/hello.py’])#这里是要打包的py文件的路径。
第三步:打开命令提示符(cmd)。
注意:不是python解析器,看到网上很多人都把其理解为python 解析器,注意:python解析器!!!是cmd然后切换到你的python25目录,这里我的python25目录为d:\python25然后在cmd下输入:python e:\setup.py py2exe注:e:\setup.py是你的setup.py位置(此位置可自行替换)然后按Enter继续,看见一大堆输出信息。
搞定!现在去d:\python25目录看看是否生成了名为dist 的文件夹进入文件夹dist,点击helo.exe就可以运行你打包的程序了。
而dist文件夹就是你打包好的程序文件夹,记住,发布的时候要把里面的所有文件都一同发布!!!运行结果:如果你要打包*.pyw文件,只要把setup.py里的console改成windows即可如果还不懂,可以试试这个图形化打包的软件:点击这里查看。
再不懂可以留言问我!py2exe是一种python发布工具,可以用来将 python 脚本转换成 windows 下的可执行程序,而且不需要安装 python 环境便可运行。
Python程序编译与反编译

Python程序编译与反编译众所周知,Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。
那么很自然会有人有这样的疑问:难道Python程序只能以源代码的方式来运行吗,能不能通过某种方式来保护自己的源代码呢?答案是肯定的。
这方面的技术主要有两种:一种方法是把Python程序伪编译成扩展名为.pyc的字节码文件,一种是通过py2exe、pyinstaller或者cx_Freeze对Python程序进行打包。
之前的文章中Python安装扩展库与打包成exe可执行文件的方法已经介绍了打包的有关内容,本文主要介绍Python代码编译与反编译。
可以使用py_compile模块的compile()函数或compileall模块的compile_file对Python源程序文件进行编译得到扩展名为.pyc的字节码以提高加载和运行速度,同时还可以隐藏源代码。
以Stack.py 文件为例,常用的编译方法有(假设已导入py_compile模块):•py_pile('Stack.py')这种形式等价于pile_file('Stack.py'),也等价于在命令提示符环境中执行命令python -m py_compile Stack.py,都会在Python安装路径下的__pycache__文件夹中生成文件Stack.cpython-35.pyc。
•py_pile('Stack.py', optimize=1)这种形式等价于pile_file('Stack.py', optimize=1),也等价于在命令提示符环境中执行命令python -O -m py_compile Stack.py,属于优化编译,会在Python安装路径下的__pycache__文件夹中生成Stack.cpython-35.opt-1.pyc文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
py2exe使用方法详解最近有很多朋友对网上的py2exe使用教程看不懂,我在这里发布图文详解。
平台:python2.51py2exe:0.69 for python2.5这里以打包e://hello.py为例第一步:在e盘新建hello.py:helo.py代码如下:--------------------print "hello"raw_input()--------------------图片:第二步:可以在任何路径任何位置新建一个名为setup.py的文件,这里把setup.py建在e盘根目录e:\setup.py:代码如下:from distutils.core import setupimport py2exesetup(console=["e://hello.py"])#这里是要打包的py文件的路径。
第三步:打开命令提示符(cmd)。
注意:不是python解析器,看到网上很多人都把其理解为python 解析器,注意:python解析器!!!是cmd然后切换到你的python25目录,这里我的python25目录为d:\python25然后在cmd下输入:python e:\setup.py py2exe//注意一定要加py2exe 用eclipse时没有此参数注:e:\setup.py是你的setup.py位置(此位置可自行替换)然后按Enter继续,看见一大堆输出信息。
搞定!现在去d:\python25目录看看是否生成了名为dist 的文件夹进入文件夹dist,点击helo.exe就可以运行你打包的程序了。
而dist文件夹就是你打包好的程序文件夹,记住,发布的时候要把里面的所有文件都一同发布!!!运行结果:如果你要打包*.pyw文件,只要把setup.py里的console改成windows即可如果还不懂,可以试试这个图形化打包的软件:点击这里查看。
再不懂可以留言问我!py2exe是一种python发布工具,可以用来将 python 脚本转换成 windows 下的可执行程序,而且不需要安装 python 环境便可运行。
py2exe 现在可以用来创建使用了 wxPython, Tkinter, Pmw, PyGTK, pygame, win32com client 以及 server 等模块的程序。
要使用py2exe编译工具,首先要安装。
python自身不带这个功能。
关于py2exe的基本用法:1、首先需要我们自己手写一个setup.py程序,内容为:from distutils.croe import setup ''' distutils 是python 内建的模块。
这里从distutils里导入setup方法。
'''importpy2exe ''' 导入py2exe模块'''setup(console=['myprogram.py']) '''console后面跟的是一个列表。
此处的myprogram.py是你要编译的.py程序这里我使用了console这个参数,它表示的是程序运行在命令提示符下,也就是DOS窗口里。
或者说是CMD.exe里。
如果你的python里使用了图形组建,即:GUI,那么就要把console改成windows。
'''把上面这段代码保存后,我们切换到cmd.exe里,运行下面的命令:python setup.py py2exe就会出现编译过程,最后会生成两个文件夹:build 和dist ,其中dist目录里面存放的是你编译好的可执行文件myprogram.exe,此时,你就可以直接运行这个生成的.exe文件了。
另一个build目录是临时文件可以删除。
当你在其他没有python环境的系统上运行必要的文件:*.pyd,library.zip,MSVCR71.dllpython*.dll这几个文件是必须要和生成的.exe 文件放在一起。
以上是最基本的编译方法。
不过在我测试的时候出现了问题。
我用pyqt4写了一个最简单的小程序,功能就是显示一个窗口。
文件名称是window.py 代码如下:#!/usr/bin/python#filename:window.pyimport sysfrom PyQt4 import QtCore,QtGuiclass Mywindow(QtGui.QMainWindow):def __init__(self):QtGui.QMainWindow.__init__(self)self.setWindowTitle('my first pyqt window')self.resize(300,200)app=QtGui.QApplication(sys.argv)mywindow=Mywindow()mywindow.show()app.exec_()用来编译的setup.py代码如下:#!/usr/bin/python#filename:setup.pyfrom distutils.core import setupimport py2exesetup(windows=["window.py"])整个编译过程都很顺利,可是当我运行编译好的window.exe文件的时候,出现了错误提示:Traceback (most recent call last):File "window.py", line 5, in <module>File "PyQt4\QtCore.pyc", line 12, in <module>File "PyQt4\QtCore.pyc", line 10, in __loadImportError: No module named sip这让我很困惑,后来去搜索了一下得到如下解决方法:#!/usr/bin/python#filename:setup.pyfrom distutils.core import setupimport py2exesetup(windows=[{"script":"myprogram.py"}],options={"py2exe":{"includes":["sip"]}})这样再次编译一下,程序可以正常运行,这其中的关键是在与setup这个函数可以带很多参数,我就是因为不了解setup所以出现了比较困惑的问题。
* finding dlls needed *** error: MSVCP90.dll: No such file or directory 解决办法是在脚本中加入"dll_excludes": ["MSVCP90.dll"], 具体代码如下:# setup.pyfrom distutils.core import setupimport py2exesetup(options = {"py2exe": {"dll_excludes": ["MSVCP90.dll"],}},windows=[{"script": "D:/Python27/workspase/t1.py"}] #t1.py的路径)# -*- coding: utf-8 -*-#windows 无控制台#console 有控制台from distutils.core import setupimport py2exesetup(version = "1.0",description = "QQ:",name = "STCP",zipfile=None,windows=[{"scri pt": "STCP.py", "icon_resources": [(1, "App.ico")]}],options={"py2exe":{"dll_excludes":[" MSVCP90.dll"],"includes":["sip"]}},includes = ["ini.py"])关于更多py2exe的使用方法和更多参数介绍,目前还没找到更详细的介绍,只在/里面找到了这一段:不过我觉得写算是比较详细的了。
其中我做了些小小的改动。
在此对作者表示歉意!1. 打包文件最好要和你的主程序文件放在同一目录下.我曾经试着把打包文件放在上级目录,结果在搜索依赖库的时候遇到了很多麻烦.2. 打包文件本身其实也是一个python的程序,虽然一般只有一个setup函数.此函数可以有name,description,version,console,windows,options,data_files 等参数.3. 要生成一个或多个命令行的exe,setup需要一个List型的名为console参数,指名源py文件.4. 要生成一个或多个GUI的exe,setup需要一个List型的名为windows参数,指名源py文件.List的每项都可以有图标等选项, 就是icon_resources哪里,图标也是个Tuple的List,但是windows一般只会显示出第一个图标,所以一个就够了.5. 如果你想用png文件直接当图标,那很可能会在生成exe的时候,引起python 崩溃,所以还是赶紧转成ico吧6. 如果你和我一样,生成的GUI的exe文件,在执行的时候,报 ImportError: No module named cairo ,那最好在setup函数里加上options,里面有include cairo 的选项.7. 如果你也有数据文件(比如glade文件,图片文件等),py2exe默认并不会帮你一起打包,你需要在setup函数中加传 data_files参数.data_files需要是一个List,每项可以是直接指向数据文件的字符串,也可以是一个Tuple;如果是前者,数据文件会直接在生成的dist目录下面,如果是后者,Tuple的第一个元素是目标目录,第二个元素是是个源文件名的List,效果是把所有的源文件存放在dist下的指定的目标目录下.(呃,好长好拗口…)8. 在py2exe生成的环境中,__file__这个应用将失效,这个问题的解决方法可以参看/index.cgi/WhereAmI这里.个人觉得Alternate Solution更加靠谱.9. 好了,现在如果你已经写好了打包文件(win_packer.py),也对源代码进行了应有的修改,你就可以执行 python win_packer.py py2exe 来生成exe了,执行此命令会在当前目录下多出一个 dist 目录,你只要把dist目录复制出来,运行里面的exe,就可以了10. 最后,如果你的GUI程序还是运行不了,你还需要手工将你的GTK+安装安装目录(默认是C:\GTK)下的etc和lib目录复制到dist目录。