本文旨在通过一个简单的demo,介绍基于Python3、PyQT5的环境下开发桌面应用程序的一种方案,当然开发Python的桌面应用程序不止是PyQT 这一种方案,还可以使用Python自带的Tkinter...打包py脚本输出exe 5.1 安装pyinstaller 5.2 打包输出exe程序 参考资料: 1....: 从菜单的插件-插件存储库进入,安装jedi插件: 最后配置一下默认工作目录: 4....打包py脚本输出exe 5.1 安装pyinstaller 下载pyinstaller源码,源码github地址,有时候用git拉取下来网速很慢,这里可以从csdn下载我上传的最新版本(20181026...最后打包出来的exe有35MB大小… 因为把QT核心的dll文件打包在一起了,否则在没有安装python以及PyQt的电脑上无法运行的。
py2exe PyQt4 中打包成EXE文件 将某个GUI程序打包成EXE文件。 Python2.7,在PyCharm中直接执行这个文件。...这里使用3.5版本的pyinstaller来打包。 注意--paths指定了路径。环境变量中并没有设置这个路径。我们指定去找PyQt5的依赖dll。...$ /d/python35/Scripts/pyinstaller --paths /d/python35/Lib/site-packages/PyQt5/Qt/bin -F -w main_lab.py...exe找不到模块报错 使用默认方式打包,得到exe与文件目录 pyinstaller main_lab.py 将dist中的目录复制到另一台电脑,点击运行exe文件;提示找不到模块 在主ui文件中,添加路径...DragInWidget # 不显示指定package 否则打包得到的exe会找不到包而无法运行
/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。...如果使用单文件模式将只有单个执行文件;如果使用目录模式的话,会有一个和脚本同名的子目录,其内才是真正的可执行文件以及附属文件。...参数的格式为文件名+输出目录名,用路径分隔符分割,在 Windows 下使用 ;,其它系统下则使用 :。 如果输出到和脚本相同的目录,则使用 . 作为输出目录。...如果直接运行 Python 脚本,那么sys.frozen 变量不存在,如果通过 PyInstaller 生成的可执行文件运行,PyInstaller 会设置sys.frozen 变量为 True;如果使用单文件模式...Analysis用于分析脚本的引用关系,并将所有查找到的相关内容记录在内部结构中,供后续步骤使用; PYZ将所有 Python 脚本模块编译为对应的 .pyd 并打包; EXE:将打包后的 Python
py脚本放在根目录下新建文件夹中去调用,所有的py脚本放在根目录下 project |---- test.py |---- func1.py |---- func2.py |---- dir...|------ file # test.py为你要封装的文件,func1.py和func2.py为test.py需要调用的py脚本,dir中的文件为py脚本需要调用的非py类文件 你需要这样运行即可...各种路径错误导致的问题 很多人在拼接路径的时候喜欢使用+来拼接路径字符串,这会导致在打包后出现各种资源无法访问的错误,且不好排查,建议多使用os.path的各种方法来处理路径。...参考:使用pyinstaller打包pyqt5报With the default recursion limit (1000) 当支行过一次pyinstaller后此时运行过的目录下会有一个与要打包的....使用pyinstaller ***.py -F -p D:\Pycharm\Program 命令在主程序所在文件目录下进行打包,即可解决模块找不到的问题。
如果我们写的是图形界面程序,可能会打包成相应操作系统平台的二进制运行文件(当然也可能直接发 Python 代码给别人运行)。 如果我们写的是 Web 应用程序,则需要部署在指定的服务器上。...如果构建好的 Python 应用程序只是我们内部使用,或者部署在服务器上以 SaaS 化的形式供使用者使用,那么也根本无需考虑 Python 代码加密和源码泄露的问题。...下面,介绍几种常见 Python 应用程序的代码加密方式,以供参考: 桌面图形程序加密 通常情况下,我们使用 PyQt5、Tkinter、WxPython 等框架编写的图形程序会使用 PyInstaller...之前我们在介绍 PyQt5 程序打包时,有提到过使用 Nuitka 这个工具来减少生成二进制文件的大小。...它的保障机制主要包括: 加密编译后的代码块,保护模块中的字符串和常量 在脚本运行时候动态加密和解密每一个函数(代码块)的二进制代码 代码块执行完成之后清空堆栈局部变量 通过授权文件限制加密后脚本的有效期和设备环境
假设你有一个名为 app.py 的 Python 脚本,要将其打包成可执行文件,只需在命令行中运行以下命令: pyinstaller --onefile app.py 这个命令会生成一个单一的可执行文件...使用 PyInstaller 将其打包成可执行文件,这样你就可以轻松地在没有安装 Python 的机器上运行它。...这是因为所有的依赖都被打包到了一个文件中,程序在启动时需要解压这些内容。 解决方案:使用 --onedir(默认选项)而不是 --onefile,这样可以让程序快速启动,因为依赖项保持解压状态。...兼容性问题 尽管 PyInstaller 支持跨平台打包,但有时候打包在一个平台上的应用在另一个平台上可能无法正常运行,特别是涉及到特定系统资源或第三方库时。...运行时错误 有时候,即使打包过程成功,打包后的应用也可能在运行时出错,比如报告缺少文件或无法加载某些资源。 解决方案:确保所有非代码资源(如图像、数据文件等)都正确包含在打包文件中。
其中的一些项目,如PyInstaller和WxPython,对于正在构建桌面和终端用户程序的Python开发人员来说是值得借鉴的。其他的,比如PyPy,用于优化服务器端的Python应用程序。...如果想要更快的Python应用程序,最简单方法就是使用PyPy,带有实时(JIT)编译器的Python运行时。Python应用程序使用PyPy运行,平均速度是普通Python应用程序的7.5倍。...PyInstaller 3.3特点 PyInstaller将Python应用程序打包为单个目录或单个文件可执行文件中,将需要的第三方库与其一起打包,并与绝大多数公共库和框架配合使用。...PyInstaller 3.3中最大的改进是对Python 3.6的支持,这是自Python3.6以来所没有的。...其目标是允许开发人员能够更快的开始使用WxPython,并且通过它创建的框架和应用程序具有更好的性能和易于维护。然而,任何现有的WxPython项目都需要修改为使用WxPython 4.0。
当我们将python文件共享给另一台计算机时,要使该python程序在该计算机上运行,应提供相同的软件包。...从requirements.txt文件安装软件包 但是,如果开发人员不想共享requirenments.txt文件,而仍然希望在另一台计算机上运行该开发的应用程序,该怎么办?...这使用户更轻松地完成任务,因为用户可以在不安装Python解释器或计算机上任何模块的情况下运行捆绑的应用程序。...命令行格式 打开终端,更改“ .py ”文件所在的目录,然后执行以下命令。 ? 运行pyinstaller 让我们看看上面的命令执行什么: yourprogram.spec 与脚本写入同一目录。...创建一个文件夹建立在同一个文件夹,如果它不存在的脚本。 将日志文件和工作文件写入build文件夹。 如果脚本不存在,则在与脚本相同的文件夹中创建文件夹dist 。
<path : 打包到哪个目录下-w: 指定生成 GUI 软件,也就是运行时不打开控制台-c: 运行时打开控制台-i <Icon File : 指定打包后可执行文件的图标–clean: 在构建之前清理...使用 Pipenv Pipenv 是一款管理虚拟环境的命令行软件,简单来讲,它可以创建一个只在某个目录下的局部 Python 环境,而这个环境是可以和全局环境脱离开的。...步骤如下: 安装 Pipenv pip install pipenv 选一个好目录做我们的虚拟环境,然后在该目录下: pipenv install --python 3.7 这样就可以在目录下创建一个局部的环境了...安装依赖的库 在虚拟环境下安装 Pyinstaller 和你自己的脚本依赖的第三方库,比如我的就是: pipenv install pyinstallerpipenv install pyqt5pipenv...把你的脚本放到这个目录下面,运行 pyinstaller,方法同前 这时我们就会用虚拟环境下的 pyinstaller 来打包库,由于这个环境比较纯净,所以即便它想乱打包其他的库也打包不了。
在可以运行于多个平台,包括:Unix, Windows, and Mac OS。...它使您可以在桌面应用程序中使用 Web 技术,同时尽最大可能隐藏使用浏览器构建GUI的事实。...enaml将声明性语言与基于约束的布局系统结合在一起,使用户可以轻松地定义灵活布局的UI。enaml应用程序可以在任何支持Python和Qt的平台上运行。...demo.py并执行查询后的效果: 4、将代码打包成exe文件 将.py文件打包成可执行的exe在Python中称为freezing,常用的工具有:PyInstaller, py2exe, cx_Freeze...完成后会生成如下目录: 将刚才编写的PyQt5的代码(demo.py和Weather.py)拖到src/main/python文件夹下,删除原有的main.py,并将demo.py修改为main.py
可以像计算机(Windows、Mac或Linux)上的任何程序/应用程序一样运行脚本,无需Python,无需安装库。 在某些时候,可能希望将你的Python脚本提供给其他人在他们的机器上运行。...使用Pyinstaller封装Python代码 Pyinstaller是一个Python库,可以为你封装Python脚本,并且非常易于使用。...封装完成后,将在工作目录中看到几个新文件夹,进入“dist”文件夹并找到与脚本同名的应用程序文件,在本例中是“freeze_eg”。...图1 双击运行该应用程序,将看到该应用程序刚刚在你的工作目录中生成了一个名为“spend_by_category.xlsx”的Excel文件。...要将Python代码封装到单个文件中,使用--onefile参数 要向应用程序添加图标,使用--icon参数。
与使用普通的 Python 对等程序相比,使用 PyPy 的 Python 应用程序的运行速度平均提升7.5倍。不幸的是,PyPy 与许多 Python 的明星框架并不是很好地兼容。...此外,在 5.9 发布版本中,PyPy 的 JSON 解析器在处理多种 JSON 对象,尤其是那些重复使用的相同的词典键值时,明显更快。...PyInstaller 3.3 的功能PyInstaller 将 Python 应用程序打包到单目录或单文件的可执行文件中,捆绑任何所需的第三方库,并可与绝大多数常见的库和框架配合使用。...你需要在要部署的同一平台上运行该 PyInstaller ,无论是 Windows、Mac 还是 Linux 。 何处下载 PyInstaller 3.3 ?...目标是允许开发人员更快地上手 WxPython ,并且使通过它创建的框架和应用程序更加高性能和易维护。然而,为了使用 WxPython 4.0 ,任何现有的使用 WxPython 项目都需要修改。
使用pyinstaller的方法也很简单,用cmd窗口也行,这里我用的是在pycharm里,如果用cmd的话需要先cd到项目的目录下面,然后在输入 pyinstaller -F -w 程序名.py。...) -c,--nowindowed,--console 指定使用命令行窗口运行程序(仅对 Windows 有效) -o DIR,--out=DIR 指定 spec 文件的生成目录。...如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 如果还想要去查看更详细的指令,可以用pyinstaller -h查看 所以根据上表,创建单个执行文件,且不显示命令行窗口的程序就是...该文件存储在--specpath=目录中,默认为当前目录。 spec文件告诉PyInstaller如何处理你的脚本。它对脚本名称和您为pyinstaller命令提供的大多数选项进行编码。...PyInstaller通过执行spec文件的内容来构建应用程序。 对于PyInstaller的许多用途,您不需要检查或修改spec文件。
的一些讨论:大概的意思就是说,解密密钥必须存储在构建的应用程序中的某个位置以使应用程序能够运行,字节码加密对于窥探的眼睛只能起到轻微的威慑作用。...例如,在下面的步骤中,我们的窥探用户甚至不需要知道他们试图打开的应用程序是加密的,更不用说必须采取任何巧妙的措施来解密它。...当然也有朋友提出将加密密码交给使用者运行时填入,但是对于源码的加密实际上并没有很大的实际意义,且会增加维护成本。...在分析需要导入的包时无法直接解析.pyd文件。...导致 PyInstaller 不知道.pyd文件中导入了哪些模块。因此,我们需要使用--hidden-import参数告诉 PyInstaller 我们需要导入哪些模块,以便正确地打包应用程序。
在命令行中输入: pipinstall auto-py-to-exe 安装完成后,在命令行中输入: auto-py-to-exe 打开如下图1所示的程序: 图1 这个模块本质上是pyinstaller...如果要将脚本转换为一个文件,就不必处理目录中的许多文件。此时,要选择“一个文件”选项。 步骤3:选择输出文件夹 转换后,我们需要在输出目录中找到应用程序文件。默认情况下,应用程序名称与脚本名称相同。...可以在程序的“Settings(设置)”部分中找到或更改输出目录。 步骤4:向应用程序添加其他文件 当我们将此应用程序提供给另一个人时,理想情况下,他们只需双击它,程序就会运行。...因此,在我们的应用程序中包含任何必需的文件非常重要。由于我们的应用程序需要chromedriver,也将其添加到软件包中。在“附加文件”设置中,我们可以选择添加单个文件或文件夹。...当我们将“单文件”与“附加文件”选项一起使用时,需要稍微调整一下代码,否则最终的应用程序将无法工作。Pyinstaller将数据/文件解压到名为sys._MEIPASS的临时文件夹中。
PyInstaller将Python应用程序及其所有依赖项捆绑到一个包中。用户可以在不安装Python解释器或任何模块的情况下运行打包的应用程序。 PyInstaller读取您写的Python脚本。...它会分析您的代码以发现您的脚本需要执行的每个其他模块和库。然后它收集所有这些文件的副本 – 包括活动的Python解释器! – 并将它们与您的脚本放在一个文件夹中,或者可选地放在一个可执行文件中。...但是,它不是一个交叉编译器:要制作一个Windows应用程序,你需要在Windows中运行PyInstaller; 在Linux中运行Linux应用程序等。...linux下运行,windows下打包只能再windows下运行 生成的可执行文件再dist目录下,可执行文件的名字与py文件名一致 该命令会在同目录下生成这样文件结构:其中requests_baidu.py...是我原始脚本命令 dist/requests_baidu是生成的可执行文件,需要保持文件结构才能正常运行 原创文章,转载请注明: 转载自URl-team 本文链接地址: PyInstaller – 将
Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。...此外,在 5.9 发布版本中,PyPy 的 JSON 解析器在处理多种 JSON 对象,尤其是那些重复使用的相同的词典键值时,明显更快。...最后两个也是最重要的,在 C 库中默认使用 Unicode 编码。 何处下载 CFFI 1.11 ?...PyInstaller 3.3 的功能 PyInstaller 将 Python 应用程序打包到单目录或单文件的可执行文件中,捆绑任何所需的第三方库,并可与绝大多数常见的库和框架配合使用。...你需要在要部署的同一平台上运行该 PyInstaller ,无论是 Windows、Mac 还是 Linux 。 何处下载 PyInstaller 3.3 ?
这个当然没有问题! 今天就来介绍一下用 pyinstaller 打包成 exe 的流程。...要打包的Python程序可以在命令行正常运行 因为打包操作需要在命令行执行,如果游戏不能在命令行运行,说明命令行里配置的 Python 环境不正确,那即使能打包,生成的 exe 也无法运行。 2....(系统属性 - 环境变量 - 系统环境变量 - PATH,加上Python的安装路径及路径下的Scripts目录,并保证在最前面) 环境没有问题,就可以通过 pip 安装 pyinstaller: pip.../simple/ 安装成功后,从命令行进入到代码所在目录,或者在文件夹中按住shift键,右键点击空白处,选择「在此处打开命令窗口」。...但也经常会出问题,比如「羊了个羊」这样打包后就无法正常运行,点击 exe 文件后窗口一闪而过就关闭了。 要查看程序出错的原因,可在 exe 文件所在目录的命令行下,直接输出文件名运行。
无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。...最后两个也是最重要的,在 C 库中默认使用 Unicode 编码。 何处下载 CFFI 1.11 ?...PyInstaller 3.3 的功能PyInstaller 将 Python 应用程序打包到单目录或单文件的可执行文件中,捆绑任何所需的第三方库,并可与绝大多数常见的库和框架配合使用。...你需要在要部署的同一平台上运行该 PyInstaller ,无论是 Windows、Mac 还是 Linux 。 何处下载 PyInstaller 3.3 ?...目标是允许开发人员更快地上手 WxPython ,并且使通过它创建的框架和应用程序更加高性能和易维护。然而,为了使用 WxPython 4.0 ,任何现有的使用 WxPython 项目都需要修改。
领取专属 10元无门槛券
手把手带您无忧上云