因项目中需要将写好的python文件交给第三方使用,但又不想将源码奉献给别人,所以想着将文件打包成exe文件,方便使用的同时也不暴露源码。---.---
1、本人的配置环境 平台:windows10
编译器:VS2019
2、安装流程 首先需要安装相关的包:pyinstaller包、pywin32包(我也不知道为啥要装这个包,照着弄就完事了。。。。)。我是在vs平台上安装的。一开始我是选择利用cmd通过命令行安装这两个包。
pip install pyinstaller
但是在安装过程中会报错“Defaulting to user installation because normal site-packages is not writeable”。通过查阅资料,发现是因为没有权限,后来通过管理员权限打开命令行进行上述两个包的安装。
【python周边|pyinstaller打包exe文件的详细步骤及过程中遇到的问题】也可以通过VS编译器进行安装:
文章图片
按照图上的步骤,先选择python环境,在选择你用的是哪个版本的python,最后点击“包(PyPI)”,在下面搜索框中输入pyinstaller,点击“pip install pyinstaller”,VS就会执行这个命令,整个过程会在输出栏里体现。
两个包安装完成后,可通过"pip list"来检测是否安装成功:
文章图片
至此,两个包已成功安装。
3、打包exe文件 通过VS安装的pyinstaller库包路径一般为:*\Shared\Python37_64\Scripts.打包指令为:
pyinstaller -F *.py
参考其他博客,有一种方法是直接在当前目录下打开powerShell(按住Shift键的同时右击选择“在此处打开PowerShell窗口”),直接输入上述命令即可,注意上述指令需要python文件在当前目录下。
文章图片
发现执行上述命令后,并无任何反应。。。。也不知道是哪里出了问题,当时也没有排查原因,有知道的小伙伴可以下面评论下,谢谢。当时换了另外一种方法,就是通过命令行,将路径定位到当前路径下,并执行上述命令。
文章图片
很不幸,又报错了。。。
问了度娘后知道“PermissionError: [Errno 13] Permission denied”的意思还是没有相应权限,所以需要管理员权限打开命令行,再进行打包操作,顺利的流程如下所示,中间过程不需要管,最终出现successfully,就恭喜你,成功啦。
D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts>pyinstaller -F test817.py
147 INFO: PyInstaller: 4.5.1
147 INFO: Python: 3.7.8
148 INFO: Platform: Windows-10-10.0.19041-SP0
149 INFO: wrote D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts\test817.spec
162 INFO: UPX is not available.
164 INFO: Extending PYTHONPATH with paths
['D:\\Program Files (x86)\\Microsoft Visual '
'Studio\\Shared\\Python37_64\\Scripts',
'D:\\Program Files (x86)\\Microsoft Visual '
'Studio\\Shared\\Python37_64\\Scripts']
667 INFO: checking Analysis
718 INFO: checking PYZ
747 INFO: checking PKG
756 INFO: Bootloader d:\program files (x86)\microsoft visual studio\shared\python37_64\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
757 INFO: checking EXE
760 INFO: Rebuilding EXE-00.toc because test817.exe missing
761 INFO: Building EXE from EXE-00.toc
766 INFO: Copying icons from ['d:\\program files (x86)\\microsoft visual studio\\shared\\python37_64\\lib\\site-packages\\PyInstaller\\bootloader\\images\\icon-console.ico']
770 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes
772 INFO: Writing RT_ICON 1 resource with 3752 bytes
772 INFO: Writing RT_ICON 2 resource with 2216 bytes
775 INFO: Writing RT_ICON 3 resource with 1384 bytes
776 INFO: Writing RT_ICON 4 resource with 37019 bytes
776 INFO: Writing RT_ICON 5 resource with 9640 bytes
777 INFO: Writing RT_ICON 6 resource with 4264 bytes
777 INFO: Writing RT_ICON 7 resource with 1128 bytes
784 INFO: Updating manifest in D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts\build\test817\run.exe.z1xfyoi3
786 INFO: Updating resource type 24 name 1 language 0
795 INFO: Appending archive to EXE D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts\dist\test817.exe
2717 INFO: Building EXE from EXE-00.toc completed successfully.
最终的生成的exe文件是在当前路径下的dist文件夹中。
文章图片
通过命令行执行该exe文件,就能输出你python文件中的内容。
推荐阅读
- python打包exe——pyinstaller遇到的那些坑及解决办法
- pyinstaller打包exe
- python实现excel数据与mysql数据库互通有无
- 人工智能|独家 | OpenAI的DALL·E模型使人类更接近通用人工智能(附链接)
- 人工智能|Pokémon AI,使用DALL-E生成神奇宝贝图鉴
- python|OpenAI 发布 DALL·E 进化版,这只蒸汽朋克时代的小熊有点酷~
- Python3 常见数据类型的转换
- 使用Python,Twisted和Django通过Android手机控制笔记本电脑
- python项目|tsne原理以及代码实现(学习笔记)