日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python打包py文件生成exe,以及運(yùn)行exe產(chǎn)生的問(wèn)題

系統(tǒng) 2068 0

python打包py文件生成exe,以及運(yùn)行exe產(chǎn)生的問(wèn)題

1 安裝pyinstaller

pip install pyinstaller

我這里已經(jīng)安裝過(guò)了,就不再多說(shuō)啦!
python打包py文件生成exe,以及運(yùn)行exe產(chǎn)生的問(wèn)題_第1張圖片

2 用pyinstaller進(jìn)行打包

(1)選項(xiàng):
-F:表示生成單一的exe文件

-w:表示執(zhí)行exe文件時(shí)去除背后的dos窗口 ps:建議最初試驗(yàn)時(shí)保留dos,可以查看是否有錯(cuò)誤發(fā)生

-p:有些需要手動(dòng)添加包的位置(dir1,dir2)多個(gè)地址時(shí)以分號(hào)分開(kāi)

-i:加入圖標(biāo)

(2)打包一個(gè)py文件 添加圖標(biāo)(格式為ico的圖片):
pyinstaller -F XXX.py -i XX.ico
(3)打包多個(gè)py文件:
pyinstaller -F XXX.py -p XX.py -i XX.ico(以此類推)

運(yùn)行以后,會(huì)生成dist和build兩個(gè)文件夾,exe在dist文件夾下。如果程序需要用到附加的文件則添加到dist文件夾中即可。

3 運(yùn)行打包后的 多進(jìn)程exe程序出現(xiàn)的問(wèn)題

運(yùn)行之后 我發(fā)現(xiàn)計(jì)算機(jī)不怎么響應(yīng)了,而且很卡,打開(kāi)任務(wù)管理器:

python打包py文件生成exe,以及運(yùn)行exe產(chǎn)生的問(wèn)題_第2張圖片
一會(huì)電腦就馬上掛掉啦!這并不是我們想要的結(jié)果

接著在網(wǎng)上一番百度,終于找到解決問(wèn)題的辦法:
pyinstaller版本小于3.3的windows附加代碼(不過(guò)我的版本是3.4的不知道為什么還會(huì)出現(xiàn)這個(gè)問(wèn)題,反正添加上后程序運(yùn)行就正常啦)

新建一個(gè)wenke.py文件 添加如下代碼:

            
              import os
import sys
import multiprocessing

# Module multiprocessing is organized differently in Python 3.4+
try:
    # Python 3.4+
    if sys.platform.startswith('win'):
        import multiprocessing.popen_spawn_win32 as forking
    else:
        import multiprocessing.popen_fork as forking
except ImportError:
    import multiprocessing.forking as forking

if sys.platform.startswith('win'):
    # First define a modified version of Popen.
    class _Popen(forking.Popen):
        def __init__(self, *args, **kw):
            if hasattr(sys, 'frozen'):
                # We have to set original _MEIPASS2 value from sys._MEIPASS
                # to get --onefile mode working.
                os.putenv('_MEIPASS2', sys._MEIPASS)
            try:
                super(_Popen, self).__init__(*args, **kw)
            finally:
                if hasattr(sys, 'frozen'):
                    # On some platforms (e.g. AIX) 'os.unsetenv()' is not
                    # available. In those cases we cannot delete the variable
                    # but only set it to the empty string. The bootloader
                    # can handle this case.
                    if hasattr(os, 'unsetenv'):
                        os.unsetenv('_MEIPASS2')
                    else:
                        os.putenv('_MEIPASS2', '')


    # Second override 'Popen' class with our modified version.
    forking.Popen = _Popen


            
          

然后在mul_process.py中加入:

            
              import wenke

            
          

然后在 if __name__ == '__main__': 下面加入:

            
              multiprocessing.freeze_support()

            
          

添加完后,再次進(jìn)行打包,運(yùn)行程序 ok! 大功告成


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 辽宁省| 平山县| 大埔县| 上杭县| 垣曲县| 五常市| 阿拉善盟| 林口县| 宣武区| 库尔勒市| 赤峰市| 石门县| 泰顺县| 闽侯县| 女性| 清水河县| 田林县| 东安县| 东海县| 益阳市| 贞丰县| 新乡县| 鄯善县| 恩施市| 双鸭山市| 佛山市| 西华县| 电白县| 观塘区| 渑池县| 平凉市| 防城港市| 阜新市| 花莲县| 尖扎县| 江都市| 墨江| 平乐县| 平远县| 菏泽市| 鄂尔多斯市|