黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 2299 0

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

1 安裝pyinstaller

pip install pyinstaller

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

2 用pyinstaller進行打包

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

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

-p:有些需要手動添加包的位置(dir1,dir2)多個地址時以分號分開

-i:加入圖標

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

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

3 運行打包后的 多進程exe程序出現(xiàn)的問題

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

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

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

新建一個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()

            
          

添加完后,再次進行打包,運行程序 ok! 大功告成


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論