打包PyQt5应用时的注意事项

用pyinstaller打包PyQt5项目可能成功,但是在运行打包后的exe时,经常会遇到“ImportError: unable to find Qt5Core.dll on PATH”错误

官方解释,这是PyQt5框架的问题,如何解决?

在所有使用import PyQt5模块的py文件头部,加入如下代码:

import sys, os
if hasattr(sys, 'frozen'):
  os.environ\['PATH'\] = sys.\_MEIPASS + ";" + os.environ\['PATH'\]

切记:这3行代码一定要在所有PyQt5模块引用的最前面,在所有PyQt5模块引用的最前面,在所有PyQt5模块引用的最前面!!!,重要的事情说三遍

(0)

相关推荐

  • Python3 安装PyQt5及exe打包图文教程

    环境: Python 3.6.4 + Pycharm Professional 2017.3.3 + PyQt5 + PyQt5-tools ① Python 3 安装 Python 3.x 安装时,默认勾选ADD Python 3.6 to PATH和ADD Python to environment variables的情况下,系统会向path中增加以下两个环境变量. D:\Program Files\Python36\Scripts\; D:\Program Files\Python36\

  • 解决pyinstaller打包pyqt5的问题

    pyinstaller打包使用pyqt5模块的时候,在win平台下,由于pyinstaller无法准确获取QT动态库文件路径,会报错导致无法打开运行程序,并提示错误信息pyinstaller failed to execute script pyi_rth_qt5plugins此时我们需要在打包的时候直接告诉pyinstaller到哪里去找,这个路径分隔符需要是unix形式: pyinstaller --paths C:/****/Python/Python35-32/Lib/site-pack

  • 打包PyQt5应用时的注意事项

    用pyinstaller打包PyQt5项目可能成功,但是在运行打包后的exe时,经常会遇到"ImportError: unable to find Qt5Core.dll on PATH"错误 官方解释,这是PyQt5框架的问题,如何解决? 在所有使用import PyQt5模块的py文件头部,加入如下代码: import sys, os if hasattr(sys, 'frozen'): os.environ\['PATH'\] = sys.\_MEIPASS + ";&

  • Javascript中使用exec进行正则表达式全局匹配时的注意事项

    本文就是介绍在使用 Javascript 中使用 exec 进行正则表达式全局匹配时的注意事项. 先看一下常见的用法: 复制代码 代码如下: <script type="text/javascript"> var pattern = /http:\/\/([^\/\s]+)/; alert(pattern.exec('http://www.codebit.cn')); // http://www.codebit.cn,www.codebit.cn alert(pattern

  • ThinkPHP后台首页index使用frameset时的注意事项分析

    html的frameset标签在多窗口程序设计中有着广泛的应用,尤其是在项目后台页面部分.本文就来分析ThinkPHP后台首页index使用frameset时的注意事项.具体如下: 文件路径:aoli/admin/Lib/Action/IndexAction.class.php 代码如下: <?php class IndexAction extends Action{ public function index(){ $this->display(); } public function to

  • 浅谈使用splice函数对数组中的元素进行删除时的注意事项

    使用splice函数对数组中的元素进行删除时的注意事项 删除值为c的元素: <script> var arr = new Array(); arr[0] = 'a'; arr[1] = 'b'; arr[2] = 'c'; arr[3] = 'c'; arr[4] = 'e'; for(var i=0; i<arr.length; i++){ if(arr[i] == 'c'){ arr.splice(i,1); i=i-1; // 必须对i减去1,否则后面的一个元素会被跳过去 } }

  • maven打包web项目时同时打包为war和jar文件的方法

    本文介绍了maven打包web项目时同时打包为war和jar文件的方法,分享给大家,具体如下: 首先在pom.xml文件中指定war的打包方式,war <artifactId>test</artifactId> <name>test</name> <packaging>war</packaging> 上述代码在eclipse中执行maven install时, 会默认打成war,并放入本地仓库. web项目时同时打包为war和jar文

  • file-loader打包图片文件时路径错误输出为[object-module]的解决方法

    最近在学习使用webpack4.0自己搭建vue脚手架,在搭建过程中,踩了许多坑,使用file-loader打包图片文件时就遇到了以下的问题. 这是我的webpack 处理打包图片相关配置项: ... module: { rules: [ ... { test: /\.(jpe?g|png|gif|svg)$/i, use: [ { loader: 'url-loader', options: { limit: 10000, name: '[name].[ext]', outputPath: '

  • pyinstaller打包单文件时--uac-admin选项不起作用怎么办

    使用pyinstaller能很方便的将python脚本打包成单个exe文件. 但是最近有一个需求,打包出来的exe文件需要用管理员权限执行! 也就是双击exe文件运行时,需要弹出一个uac界面让用户授权. 于是我查找pyinstaller的官方文档,说是在打时包加上--uac-admin参数就行了! 然而我实际操作了一下,发现直接加上这个参数仅在打包成多文件时有效 ,打包成单文件时是没用的. 但是我就想打包成单个exe文件,又要uac用户授权界面,怎么办? 好,解决方案: 如图,现在我们有一个t

  • mysql迁移至8.0时的注意事项(小结)

    密码模式 PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] mysql8 之后,默认的密码模式改为 caching_sha2_password,新的模式需要新的驱动,至少现在 pdo / navicat 还没给出,所以我们还是得切换成老的 mysql_native_password 模式. `mysql_native_passwo

  • Spring打包jar包时jsp页面无法访问问题解决

    spring打包jar包时jsp页面无法访问 问题如下 当前pom.xml配置 <build> <resources> <!--引入配置文件--> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> <!--引入静态文件--> <resource&

随机推荐