从Python脚本到exe程序:pyinstaller实战

之前我写过一个英汉词典的Python脚本:

import sys

import re

import bs4

import urllib.request

from bs4 import BeautifulSoup

import urllib.parse

from PyQt5.QtWidgets import (QPushButton,QWidget, QLabel, QLineEdit, QTextEdit, QGridLayout,QApplication)

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def translation(self,search):

url = 'http://dict.youdao.com/w/'+urllib.parse.quote(search)

content = html.read().decode('utf-8')

html.close()

soup = BeautifulSoup(content, "lxml")

text = soup.find('div', class_="trans-container")('ul')[0]('li')

intro_text=''

for x in text:

word = re.sub(re.compile(r""),'',str(x))

words = re.sub(re.compile(r"\[(.+?)\]"),'',word)

intro_text += words

return intro_text

def intro_final(self,search):

try:

return self.translation(search)

except:

return "未检索到"

def initUI(self):

search_label = QLabel("请输入英语单词:")

search_item = QLineEdit()

btn1 = QPushButton("查单词", self)

btn2 = QPushButton("清空", self)

search_result = QTextEdit()

grid = QGridLayout()

grid.setSpacing(5)

grid.addWidget(search_label, 1, 0)

grid.addWidget(search_item,2, 0)

grid.addWidget(btn1, 3, 0)

grid.addWidget(btn2, 3, 1)

grid.addWidget(search_result, 4, 0, 5, 0)

self.setLayout(grid)

def searching():

search_result.setText(self.intro_final(search_item.text()))

btn1.clicked.connect(searching)

def clear():

search_result.setText("")

search_item.setText("")

btn2.clicked.connect(clear)

self.setGeometry(300, 300, 550, 200)

self.setWindowTitle("英汉词典--Python脚本:郑连虎;个人微信公众号:阿虎定量笔记")

if __name__ == "__main__":

app = QApplication(sys.argv)

ex = Example()

ex.show()

sys.exit(app.exec_())

尽管用到网页采集与图形用户界面GUI技术,完善了用户体验,但对没有安装Python语言的电脑来说,运行这样的脚本仍然十分不便。

本期通过pyinstaller将Python脚本发布为可执行文件exe程序,使我们开发的脚本,成为即使脱离Python环境,仍可在Windows系统中独立运行的程序,可以拷贝到任何一台Windows电脑上使用。

基于Python 3.6语言

↘ 步骤:

1.找到Python安装路径下的Scripts 文件夹,例如我的是C:\Users\User\Anaconda3\Scripts,按住键盘Shift键,在空白处右击鼠标,调出Windows PowerShell,执行pip install pyinstaller命令,等待其安装完成

2.在脚本所在文件夹,例如我把脚本存在D:\dict,同样按住键盘Shift键,在空白处右击鼠标,调出Windows PowerShell,执行pyinstaller -F -w -p C:\Users\User\Anaconda3\Lib\site-package D:\dict\dict.py命令,其中-F表示打包为一个exe文件,否则为多个库文件;-w表示打包为没有cmd窗口的exe文件,否则运行时就会出现cmd窗口;-p指明搜索模块的路径

3.打包完成后,在dist文件夹下,就可以找到exe程序文件,这是适用于Windows系统的免安装版程序,可以拷贝到任何一台Windows电脑上使用;下图是我使用该程序查询英语单词“Python”的效果

↘ 注意:

1. 常见报错1:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position

解决方法:删除Python脚本中的中文注释

2. 常见报错2:Hidden import "PyQt5.sip" not found!

解决方法:在Scripts文件夹下,执行pip install PyQt5命令以安装缺失的库

3. 本词典基于网页采集技术,需在联网状态下使用。我已经把我写的这个“英汉词典”exe程序上传到网盘,请关注“阿虎定量笔记”微信公众号,并在后台留言“英汉词典”获取!

阿虎定量笔记

数据分析方法

软件使用技巧

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181209G0XDFF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券