如何把py文件夹做成exe运行visual 程序做成.exe

Python程序打包成exe可执行文件的方法探究_参考网
Python程序打包成exe可执行文件的方法探究
王瑞文+王圣辉+边润根+邓明月摘 要:Python是一种很流行的开源编程语言,可以在各种领域中用来编写独立的程序和脚本。Python免费、可移植、功能强大,而且使用起来相当容易。来自软件产业各个角落的程序员都已经发现,Python对于开发者效率和软件质量都十分关注,这无论在大项目还是小项目中都是一个战略性的优点。但是Python也有一点点小缺陷,那就是Python程序的执行必须要有解释器的参与。Python的程序如何在没有解释器的平台上使用,很简单,将Python程序打包成exe可执行文件即可。文章对Python程序打包成exe可执行文件的方法进行探究,以期为Python程序的深入应用提供一定支持。关键词:Python程序;exe可执行文件;解释器Python最大的优点是简单易学,其语法不像其他编程语言那样复杂。阅读一个良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题而不是去搞明白语言本身。Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是:对于一个特定的问题,只要有一种最好的方法来解决就好了。Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。在实际开发中,Python常被昵称为胶水语言,这不是说它会把你的手指粘住,而是说它能够很轻松地把用其他语言制作的各种模块联结在一起。Python的优点还包括可扩充性免费、开源、高级语言、可移植性、解释性、可扩展性、可嵌入性等。1 利用Windows平台工具打包1.1 Py2exe打包Py2exe是把Python脚本转换为Windows平台上面可以运行的可执行程序的工具。Py2exe的使用方法十分简单,需要进行3个步骤:(1)根据你本地安装的Python的版本来选择要安装的Py2exe版本;(2)为py文件编写setup文件。(3)执行setup文件进行编译。举个简单的例子:如果你有一个名字为Py2exe.py的脚本程序需要打包,使它能够运行在Windows平台上,那么首先你需要写一个设置脚本如setup.py。setup.py示例如下:#setup.pyfrom distutils.core import setupimport py2.exesetup(console=[“py2exe.py”])然后在cmd中按下面的方法运行mysetup.py:python mysetup.py py2exe上面的命令执行后将产生一个名为dist的子目录,其中包含了py2exe.exe,library.zip这些文件,dist子目录中的文件包含了程序所必需的东西。可能出现的问题:(1)error MSVCP90.dll:No such file or directory,解决方法:将该dll写入dll_excludes中;(2)error.bundle-files 1 not yet supported on win64,对于64位的Py2exe而言,bundle_files选项目前仍不可用,无法生成单文件。1.2 cx_freeze打包与Py2exe相同,cx_freeze打包也需要下载并安装与Python版本相同的程序。生成可执行程序有两种方式:(1)通过cxfreeze-quickstart生成setup.py文件,定制setup.py文件;(2)执行cxfreeze main.py默认生成dist目录。可以添加选项,可以通过cxfreeze-h查看帮助文档。一般情况下,这两种都可以正确生成可执行程序。特殊情况下,第一种可能会出现错误,第二种不会出现错误。第一种需要自己定制setup.py文件,需要手动添加第三方模块,如果不添加,会出现错误。cx_freeze可以生成exe文件加运行时所依赖的其他多个文件和单独的msi安装文件包。和Pyinstaller相比,缺点有:需要手动自己输入所依赖的库的名字,无法自动识别;还需要添加对应的path,供其搜索依赖的库。2 第三方库Pyinstaller打包2.1 第三方库的安装Pyinstaller需要在命令行(控制台)下用工具安装,如图1所示。pip install pyinstaller如果没有设置环境变量,可以在Python的安装目录下的scripts文件夹下找到pip.exe,在命令行下运行它就可以了。2.2 打包Python程序的命令Pyinstaller库会自动将Pyinstaller命令安装到Python解释器目录中,与pip或pip3命令相同,因此可以直接使用。使用Pyinstaller库十分简单,请注意,Pyinstaller不支持源文件名中有英文句号存在。打包命令如下:Pyinstaller –F e:\pythonexe\GUI.py –noconsole参数说明:-F 表示生成单个可执行文件;-w表示去掉控制台窗口,这在GUI界面时非常有用;-p表示你自己自定义需要加载的类路径,一般情况下用不到;-i表示可执行文件的图标;-noconsole表示去掉控制台窗口,如果还想添加自定义的依赖库,就要加上-p参数。2.3 获得打包后的exe程序執行完毕后,源文件所在目录将生成dist和build两个文件夹。其中build是Pyinstaller存储临时文件的目录,可以安全删除。最终的打包程序在dist文件夹中,目录中其他文件是可执行文件的动态链接库。
3 結语本文列出了3种较为快捷的Python打包方法,使得每次运行脚本不再需要打开IDE。其中使用第三方库Pyinstaller打包方法较为简单方便,且不易出现问题。Py2exe打包的程序只能在相同的系统下运行,在XP系统用Py2exe打包的exe只能在XP上运行,在Win 7上肯定会出问题,而Pyinstaller打包则不会出现这种问题。作者简介:王瑞文(1997— ),男,江西吉安,本科;研究方向:航空宇航制造。[参考文献][1]赫特兰.Python基础教程[M].凌杰,陆禹淳,顾俊,译.北京:人民邮电出版社,2010.[2]陈仲才.Python核心编程[M].杨涛,译.北京:机械工业出版社,2001.[3]鲁特兹.Python学习手册[M].侯靖,译.3版.北京:机械工业出版社,2009.Abstract: Python is a popular open source programming language that can be used in a variety of fields to write separate programs and scripts. Python is free, portable, powerful and easy to use. Programmers from every corner of the software industry have found that Python is very concerned about developers efficiency and software quality, which is a strategic advantage both in large and small projects. However, Python also has a small flaw, that is, Python program execution must have the participation of the interpreter. How does a Python program work on an interpreter free platform? Its easy to package Python programs into exe executable files. This paper explores the methods that Python programs package into exe executable to provide some support for the indepth application of Python programs.Key words: Python programs; exe executable files; interpreter
无线互联科技
2017年12期
无线互联科技的其它文章拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3abf9a8f74cf436a-ua98).
重新安装浏览器,或使用别的浏览器详解Python中.py文件打包成exe可执行文件实例代码- Python教程-PHP中文网QQ群微信公众号还没有收藏详解Python中.py文件打包成exe可执行文件实例代码这篇文章主要给大家介绍了在Python中.py文件打包成exe可执行文件的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。前言最近做了几个简单的爬虫python程序,于是就想做个窗口看看效果。首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui。这里用前面sinanews的爬虫脚本为例,制作一个获取当天sina头条新闻的窗口。生成py文件后,运行该py文件,这里窗口我只是随便拖了几个组件进去,主要的text browser用于显示获取到的sinanews。首先贴一下我的配置官方下载:  PyQt5-5.2.1 for Py3.3(当安装完Python3.3后,安装对应PyQt,其会找到Python安装目录,不用更改安装目录)本地下载:
PyQt5-5.2.1 for Py3.3(当安装完Python3.3后,安装对应PyQt,其会找到Python安装目录,不用更改安装目录)Python3.3默认是没有安装pip的,需要下载get-pip.py运行之后,提示安装成功。接下来就要安装一些必要的组件了。为了安装方便,先把pip添加进环境变量。下面我们就可以用pip命令安装组件了。先把sina_news.py贴出来,观察需要哪些组件。import requests
from bs4 import BeautifulSoup
res = requests.get('.cn/china/')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text,'html.parser')
for news in soup.select('.news-item'):
if len(news.select('h2')) & 0:
h2 = news.select('h2')[0].text
a = news.select('a')[0]['href']
time = news.select('.time')[0].text
print(time,h2,a)发现import requests,import BeautifulSoup 所以先来安装这些组件pip install requests
pip install BeautifulSoup4当我们把这段代码贴进窗口代码后:x.py# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'x.ui'
# Created by: PyQt5 UI code generator 5.8.1
# WARNING! All changes made in this file will be lost!
import sys
import requests
from PyQt5 import QtCore, QtGui, QtWidgets
from bs4 import BeautifulSoup
class Ui_x(object):
def getNews():
res = requests.get('.cn/china/')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text,'html.parser')
title = []
for news in soup.select('.news-item'):
if len(news.select('h2')) & 0:
h2 = news.select('h2')[0].text
title.append(h2)
a = news.select('a')[0]['href']
time = news.select('.time')[0].text
return '\n'.join(title)
def setupUi(self, x):
x.setObjectName(&x&)
x.resize(841, 749)
self.timeEdit = QtWidgets.QTimeEdit(x)
self.timeEdit.setGeometry(QtCore.QRect(310, 10, 141, 31))
self.timeEdit.setObjectName(&timeEdit&)
self.dateEdit = QtWidgets.QDateEdit(x)
self.dateEdit.setGeometry(QtCore.QRect(100, 10, 191, 31))
self.dateEdit.setObjectName(&dateEdit&)
self.textBrowser = QtWidgets.QTextBrowser(x)
self.textBrowser.setGeometry(QtCore.QRect(60, 80, 701, 641))
self.textBrowser.setObjectName(&textBrowser&)
self.retranslateUi(x)
QtCore.QMetaObject.connectSlotsByName(x)
def retranslateUi(self, x):
_translate = QtCore.QCoreApplication.translate
x.setWindowTitle(_translate(&x&, &x&))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_x()
ui.setupUi(Form)
Form.show()
ui.textBrowser.setText(Ui_x.getNews())
sys.exit(app.exec_())如果前面顺利的话,现在用python运行x.py应该能看到显示的窗口。下面就是打包的过程了,这里笔者用的Pyinstaller,没有安装的话,要安装一下:pip install pyinstaller安装完成后,cmd路径cd到x.py所在目录。打包命令:Pyinstaller -w x.py此时,在x.py便生成dist文件夹,打包的x.exe就在此文件夹下。双击x.exe显示效果:当然还有许多改进的地方,比如在上面选择日期,获得指定日期的头条新闻。可能遇到的问题:打开打包后的程序无法运行显示:ImportError: No module named 'queue'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File &test.py&, line 2, in &module&
File &c:\users\hasee\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py&, line 389, in load_module
exec(bytecode, module.__dict__)
File &site-packages\requests\__init__.py&, line 63, in &module&
File &c:\users\hasee\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py&, line 389, in load_module
exec(bytecode, module.__dict__)
File &site-packages\requests\utils.py&, line 24, in &module&
File &c:\users\hasee\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py&, line 389, in load_module
exec(bytecode, module.__dict__)
File &site-packages\requests\_internal_utils.py&, line 11, in &module&
File &c:\users\hasee\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py&, line 389, in load_module
exec(bytecode, module.__dict__)
File &site-packages\requests\compat.py&, line 11, in &module&
File &c:\users\hasee\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py&, line 389, in load_module
exec(bytecode, module.__dict__)
File &site-packages\requests\packages\__init__.py&, line 29, in &module&
ImportError: No module named 'urllib3'
Failed to execute script test当然这个错误代码,当时我没有保留,这是版本不匹配造成的:我的Pyinstaller为3.2需要降低requests的版本,requests2.10可以成功打包,而2.11就不行。这里贴上解决此问题用到的requests2.10不知道以后会不会修复这个问题。这个bug昨天做梦我还梦到呢。今天早上起来就解决了,兴奋的受不了。希望在此过程中遇到的问题对你会有所帮助。以上就是详解Python中.py文件打包成exe可执行文件实例代码的详细内容,更多请关注php中文网其它相关文章!共3篇93点赞收藏分享:.&猜你喜欢PHP中文网:独家原创,永久免费的在线,php技术学习阵地!
All Rights Reserved | 皖B2-QQ群:关注微信公众号

我要回帖

更多关于 visual 程序做成.exe 的文章

 

随机推荐