You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包程序无法从宿主环境导入模块的技术咨询

环境配置

  • Python 3.8
  • Ubuntu 20.04.4 LTS
  • PyInstaller 5.4.1(本地包)
  • requests 2.28.1

问题与报错

我希望打包后的程序不内置requests模块,而是从宿主环境中导入,但运行打包程序时导入requests失败,报错信息如下:

File "/myuser/m/.local/lib/python3.8/site-packages/requests/compat.py", line 48, in <module>
    from http.cookies import Morsel
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'http.cookies'

我的脚本仅包含一行代码:

import requests

已执行的操作

  1. 使用--exclude-module requests参数生成打包程序
  2. 在脚本中添加路径配置:
sys.path.append('/home/myuser/.local/lib/python3.8/site-packages')

执行后仍出现报错:

ModuleNotFoundError: No module named 'http.cookies'

我理解这是因为PyInstaller未扫描requests,因此无法识别其依赖的http.cookies模块。在脚本中手动添加import http.cookies后程序可正常运行,但仅添加sys.path.append('/usr/lib/python3.8')无法解决问题。

由于无法预测第三方模块的所有依赖,我想将宿主环境的所有目录添加到sys.path中,现存在以下疑问:

  1. 将宿主的所有目录添加到打包脚本的sys.path有什么问题?
  2. 为何程序能找到/home/myuser/.local/lib/python3.8/site-packages下的requests,却找不到/usr/lib/python3.8下的http.cookies?
  3. 一般情况下,如何像调试普通Python脚本一样调试PyInstaller打包后的程序?

内容的提问来源于stack exchange,提问作者leonidp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:55:31