91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pyinstaller打包資源文件及包含eyed3模塊時提示找不到libmagic處理

發布時間:2020-08-09 09:01:51 來源:網絡 閱讀:2462 作者:colinzhouyj 欄目:編程語言

這兩天用python寫了個小工具,用到了eyed3,用pyinstaller打包時提示找不到libmagic

版本信息:
python 3.6.5
pyInstaller 3.4
python-magic-bin 0.4.14
eyeD3 0.88
wxpython 4.0.3
  1. eyeD3 在Windows下使用時,文件名帶有中文時亂碼,提示找不到文件,解決辦法(magic.py 230行左右):
if is_unicode:
    return filename.encode('utf-8')
else:
    return filename

改為

if is_unicode:
        import locale
        lan, encoding = locale.getdefaultlocale()
        return filename.encode(encoding)
else:
        return filename

2.pyinstall打包包含資源文件方法:

首先生成spec配置文件,要指定的參數-F ,-w等,這里就要添加
:pyi-makespec  [options] myscript.py
然后編輯 myscript.spec --> datas 標簽,格式:
datas=[('res/my.ico','res'),('文件路徑','存放路徑')]
最后:
:pyinstaller myscript.spec
在使用時,引用文件路徑方法:
if getattr(sys, 'frozen', False):
    respath = os.path.join(sys._MEIPASS, 'res')
myicopath = os.path.join(respath,'my.ico')

注:sys._MEIPASS是pyinstaller打包exe后程序的運行時路徑
  1. pyinstall 打包包含eyeD3模塊時提示 找不到libmagic
首先將libmagic打包到exe文件內
datas=[('C:/Users/xxxx/Python/Lib/site-packages/magic/libmagic','libmagic'),(其他資源)],
然后修改 magic.py,大約155行:
bin_dist_path = os.path.join(os.path.dirname(__file__), 'libmagic')
修改為:
if getattr(sys, 'frozen', False):
    bin_dist_path = os.path.join(sys._MEIPASS, 'libmagic')
else:
    bin_dist_path = os.path.join(os.path.dirname(__file__), 'libmagic')
如果擔心修改這個文件影響其他項目使用,可以先拷貝一份magic.py到項目根目錄
然后再修改,打包時會優先使用項目下的magic.py
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通山县| 乡城县| 鹿泉市| 水城县| 安徽省| 沙洋县| 民权县| 肥城市| 冀州市| 日土县| 易门县| 金阳县| 灯塔市| 东丽区| 红原县| 建宁县| 普格县| 松阳县| 淮滨县| 奇台县| 虎林市| 云霄县| 临洮县| 鹤岗市| 长沙县| 新安县| 常宁市| 广元市| 大埔县| 平凉市| 丹凤县| 古浪县| 泽库县| 湄潭县| 溧阳市| 锦州市| 承德市| 延川县| 新田县| 抚州市| 屏东市|