python程序中使用到requests,在開發環境中可以正常運行,但用pyinstaller 打包成單個exe文件后,卻無法運行,提示 requests 中的urllib3依賴的一個six.py模塊出現運行錯誤,提示 no module named 'queue' 接著導致提示 no module named 'urllib3'
six.py提示錯誤在82行
def _import_module(name): """Import module, returning the module after the last dot.""" __import__(name) #82 return sys.modules[name]
看起來像是自動導入模塊,查了些資料了解sys.modules 是個字典存儲有python啟動到現在,已加載的模塊
我的程序中沒有直接用queue模塊的地方,打包后也沒有其他途徑加載這個模塊,導致找不到。開發環境中運行卻無錯(猜測開發環境啟動時自動加載了一些模塊,可能是給用戶環境準備的,也可能是開發工具自己要使用就先加載了),嘗試在自己的程序中,顯示導入這個模塊(注該模塊是標準庫中一部分),盡管程序中沒有使用到。
再次打包,運行exe文件,成功,問題解決
新聞熱點
疑難解答