由于天气因素,无法外出,在家闲来无事,使用Python编写一个简单的百度搜索应用。

功能:打开默认浏览器,使用百度进行搜索

Python:2.7.13

第三方库:pyinstaller(打包软件)

工具:upx-3.95-win32(压缩exe大小)

通过pip安装pyinstaller3.3.1版本:

pyinstaller 安装命令:pip install pyinstaller==3.3.1

实际中pyinstaller 3.4遇到了一个异常问题,改用了3.3.1版本:
Traceback (most recent call last): File
"C:\Python27\Scripts\pyinstaller-script.py", line 11, in <module>
load_entry_point('PyInstaller==3.4', 'console_scripts', 'pyinstaller')() File
"c:\python27\lib\site-packages\pkg_resources\__init__.py", line 480, in l
oad_entry_point return get_distribution(dist).load_entry_point(group, name)
File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2693, in
load_entry_point return ep.load() File
"c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2324, in load
return self.resolve() File
"c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2330, in
resolve module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "c:\python27\lib\site-packages\PyInstaller\__init__.py", line 72, in <mod
ule> DEFAULT_SPECPATH = compat.getcwd() File
"c:\python27\lib\site-packages\PyInstaller\compat.py", line 613, in getcw d cwd
= win32api.GetShortPathName(cwd) AttributeError: 'module' object has no
attribute 'GetShortPathName'
pyinstaller具体使用方法可以参考 胖玻璃球就一个 <https://blog.csdn.net/xinyingzai> 的博客:

https://blog.csdn.net/xinyingzai/article/details/80282856
<https://blog.csdn.net/xinyingzai/article/details/80282856>

upx下载链接:

https://github.com/upx/upx/releases/tag/v3.95
<https://github.com/upx/upx/releases/tag/v3.95>

应用代码如下:
#coding=utf-8 import webbrowser,sys if sys.getdefaultencoding() != 'gbk':
reload(sys) sys.setdefaultencoding('gbk') print
"输入:'#q'or'#Q',退出工具".decode('utf-8') while True: try: rst = raw_input(">>>#:")
if rst in ["#q","#Q"]: break print "open baidu search:{}".format(rst)
webbrowser.open(url=u"https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd={}".format(rst.decode('gbk')))
except: pass
打包命令:pyinstaller -F -i serch.ico --upx upx-3.95-win32 BaiduSearch.py

参数说明:

-i serch.ico 软件图标为:serch.ico

--upx upx-3.95-win32 使用upx压缩软件大小

BaiduSearch.py 要打包的python文件





打包过程中出现了两个问题:

1.
Traceback (most recent call last): File
"C:\Python27\Scripts\pyinstaller-script.py", line 11, in <module>
load_entry_point('PyInstaller==3.3.1', 'console_scripts', 'pyinstaller')() File
"c:\python27\lib\site-packages\PyInstaller\__main__.py", line 94, in run
run_build(pyi_config, spec_file, **vars(args)) File
"c:\python27\lib\site-packages\PyInstaller\__main__.py", line 46, in run_ build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs) File
"c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 791,
in main build(specfile, kw.get('distpath'), kw.get('workpath'),
kw.get('clean_build' )) File
"c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 737,
in build exec(text, spec_namespace) File "<string>", line 29, in <module> File
"c:\python27\lib\site-packages\PyInstaller\building\api.py", line 397, in
__init__ self.console, self.uac_admin, self.uac_uiaccess) File
"c:\python27\lib\site-packages\PyInstaller\utils\win32\winmanifest.py", l ine
1038, in create_manifest manifest = ManifestFromXMLFile(filename) File
"c:\python27\lib\site-packages\PyInstaller\utils\win32\winmanifest.py", l ine
999, in ManifestFromXMLFile manifest.parse(filename_or_file) File
"c:\python27\lib\site-packages\PyInstaller\utils\win32\winmanifest.py", l ine
753, in parse self.load_dom(domtree, False) File
"c:\python27\lib\site-packages\PyInstaller\utils\win32\winmanifest.py", l ine
721, in load_dom (self.filename, manifest.name)) UnicodeDecodeError: 'ascii'
codec can't decode byte 0xd7 in position 9: ordinal not in range(128)
解决方法参考:
https://blog.csdn.net/lusongno1/article/details/62891860?utm_source=blogxgwz1
<https://blog.csdn.net/lusongno1/article/details/62891860?utm_source=blogxgwz1>

2.
Traceback (most recent call last): File
"C:\Python27\Scripts\pyinstaller-script.py", line 11, in <module>
load_entry_point('PyInstaller==3.3.1', 'console_scripts', 'pyinstaller')() File
"c:\python27\lib\site-packages\PyInstaller\__main__.py", line 94, in run
run_build(pyi_config, spec_file, **vars(args)) File
"c:\python27\lib\site-packages\PyInstaller\__main__.py", line 46, in run_ build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs) File
"c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 791,
in main build(specfile, kw.get('distpath'), kw.get('workpath'),
kw.get('clean_build' )) File
"c:\python27\lib\site-packages\PyInstaller\building\build_main.py", line 737,
in build exec(text, spec_namespace) File "<string>", line 29, in <module> File
"c:\python27\lib\site-packages\PyInstaller\building\api.py", line 411, in
__init__ strip_binaries=self.strip, upx_binaries=self.upx, File
"c:\python27\lib\site-packages\PyInstaller\building\api.py", line 196, in
__init__ self.__postinit__() File
"c:\python27\lib\site-packages\PyInstaller\building\datastruct.py", line 161,
in __postinit__ self.assemble() File
"c:\python27\lib\site-packages\PyInstaller\building\api.py", line 259, in
assemble dist_nm=inm) File
"c:\python27\lib\site-packages\PyInstaller\building\utils.py", line 198, in
checkCache cachedfile = os.path.join(cachedir, basenm) File
"c:\python27\lib\ntpath.py", line 85, in join result_path = result_path +
p_path UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 7:
ordinal not in range(128)
解决方法参考:
https://blog.csdn.net/lxl743p/article/details/78708088?utm_source=blogkpcl7
<https://blog.csdn.net/lxl743p/article/details/78708088?utm_source=blogkpcl7>

工具使用截图:



 

已经完成的工具与图标附件:https://download.csdn.net/download/zichehantz/10828662
<https://download.csdn.net/download/zichehantz/10828662>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信