亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

瀏覽:3日期:2022-08-05 18:26:40

本文介紹一個(gè)exe打包工具pyinstaller,使用非常簡(jiǎn)單、方便,而且還跨平臺(tái)。

軟硬件環(huán)境

Windows 10 64bit PyQt5 Anaconda with python 3.6.5 pyinstaller apscheduler sqlalchemypyinstaller安裝

命令行中執(zhí)行

pip install pyinstallerpyinstaller打包exe

示例還是以之前的為例,解壓進(jìn)入工程目錄,命令行執(zhí)行打包命令

pyinstaller -F --distpath release main.py

其中release是目標(biāo)文件夾,main.py是工程入口文件,-F表示生成一個(gè)可執(zhí)行文件。

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

pyinstaller的打包參數(shù)很多,需要的話(huà)通過(guò)help來(lái)查看

pyinstaller -hsubprocess打包問(wèn)題

在打包包含subprocess.Popen時(shí)發(fā)現(xiàn),加上參數(shù)--noconsole時(shí)產(chǎn)生的exe文件在運(yùn)行的時(shí)候,進(jìn)程并沒(méi)有正確運(yùn)行。比如需要利用subprocess.Popen創(chuàng)建一個(gè)進(jìn)程去執(zhí)行一個(gè)命令行操作,

mProcess = subprocess.Popen(cmd,stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,universal_newlines=True)

pyinstaller打包操作命令如下

pyinstaller -F --noconsole --clean --distpath release main.py

打包后生成的exe,可以運(yùn)行,不過(guò)查看進(jìn)程并沒(méi)有如預(yù)期正確地工作。

解決方法是在創(chuàng)建進(jìn)程時(shí),加上startupinfo參數(shù),如下

si = subprocess.STARTUPINFO()

si.dwFlags |= subprocess.STARTF_USESHOWWINDOW

mProcess = subprocess.Popen(cmd,stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,universal_newlines=True,startupinfo=si)

問(wèn)題完美解決,具體可以參考文末的資料

apscheduler打包問(wèn)題

項(xiàng)目中用到了apscheduler這個(gè)庫(kù),用來(lái)做定時(shí)任務(wù)非常的好,使用也很簡(jiǎn)單,不過(guò)在pyinstaller打包的時(shí)候,出現(xiàn)了如下錯(cuò)誤

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

解決方法是,編輯文件/usr/local/lib/python3.5/dist-packages/apscheduler/__init__.py

# These will be removed in APScheduler 4.0.

# release = __import__(’pkg_resources’).get_distribution(’APScheduler’).version.split(’-’)[0]

# version_info = tuple(int(x) if x.isdigit() else x for x in release.split(’.’))

# version = __version__ = ’.’.join(str(x) for x in version_info[:3])

release = (3,3,1) 

version_info = ’3.3.1’ 

version = ’3.3.1’

3.3.1是我安裝的apscheduler的版本號(hào),視實(shí)際情況修改。

接下來(lái)創(chuàng)建一個(gè)名稱(chēng)為hook-ctypes.macholib.py,內(nèi)容如下

# -*- coding: utf-8 -*-from PyInstaller.utils.hooks import copy_metadatadatas = copy_metadata(’apscheduler’)

最后執(zhí)行打包命令

pyinstaller -F --clean --additional-hooks-dir hooks --distpath release main.pysqlalchemy打包問(wèn)題

在用pyinstaller打包一個(gè)使用了sqlalchemy庫(kù)的python3工程中,碰到了打包后的可執(zhí)行文件報(bào)錯(cuò)的問(wèn)題,如下圖所示

python GUI庫(kù)圖形界面開(kāi)發(fā)之pyinstaller打包python程序?yàn)閑xe安裝文件

解決方案是,將sqlalchemy.dialects中的mysql引入,然后采用mysql+pymysql的方式打開(kāi)數(shù)據(jù)庫(kù),代碼如下

import pymysqlfrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.dialects import mysqlusername = ’xugaoxiang’passwd = ’123456’server = ’192.168.0.100’port = ’3306’dbname = ’djdb’cmd_connect = ’mysql+pymysql://{}:{}@{}:{}/{}’.format(username, passwd, server, port, dbname)engine = create_engine(cmd_connect)

執(zhí)行pyinstaller打包命令

pyinstaller -F --clean --distpath shark main.py

好了,至此pyinstaller打包python程序?yàn)閑xe安裝文件的其實(shí)操作就算完成了,如果出現(xiàn)其它問(wèn)題請(qǐng)直接聯(lián)系我們,更多關(guān)于這方面的相關(guān)知識(shí)請(qǐng)查看下面的相關(guān)鏈接

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 在线观看精品国内福利视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产日韩精品一区二区在线观看播放 | 国产精品二区页在线播放 | 久草福利免费 | 91热久久免费频精品黑人99 | 嫩草视频在线观看免费 | 日本黄区免费视频观看 | 黄色网址在线免费观看 | 爱爱小视频免费体验区在线观看 | 国产高清亚洲 | 99久久精品国产麻豆 | 高清一级做a爱免费视 | 在线碰| 黄色网片 | 国产精品国产欧美综合一区 | 极品国模私拍福利在线观看 | 亚洲一区无码中文字幕 | 两性毛片 | www视频在线免费观看 | 国产一区二区三区不卡在线观看 | 日韩中文字幕在线免费观看 | 黄色片网站在线 | 成人日韩视频 | 亚洲第一福利视频 | 丝袜亚洲综合 | 午夜视频在线观看国产 | 国产乱人视频免费播放 | 国产一级aaa全黄毛片 | 亚洲第一免费播放区 | 日本视频高清免费观看xxx | 亚洲国产品综合人成综合网站 | 亚洲日本人成网站在线观看 | 在线观看免费播放网址成人 | 亚洲欧美国产高清va在线播放 | 国内精自品线一区91 | 欧美亚洲在线观看 | 在线播放免费人成毛片乱码 | 婷婷激情丁香 | 国产成人午夜福在线观看 | 国产妇女性爽视频免费 |