【问题标题】:How do I handle custom modules when creating an exe with PyInstaller?使用 PyInstaller 创建 exe 时如何处理自定义模块?
【发布时间】:2022-06-19 22:34:17
【问题描述】:

我使用 PyInstaller 从 python 脚本创建了一个可执行文件,如下所示:

pyinstaller --onefile pythonScriptName.py

但是,当我运行可执行文件时,我收到错误ImportError: No module named 'MyModule'。 'MyModule' 是我在脚本中使用的自定义模块的占位符名称。所以我假设 PyInstaller 没有打包自定义模块。有没有办法让它做到这一点?

【问题讨论】:

  • 您的自定义模块在哪里?如果它是在pythonScriptName.py 中导入的,那么您可以告诉pyinstaller 使用--paths "/location/of/folder" 在任何其他文件夹中搜索它。如果通过任何导入语句都看不到它,您还可以使用 --hidden-import modulename 连同这个...
  • 这个讨论也说了同样的话 stackoverflow.com/questions/15114695/… 问题是针对 Windows 的,但这些标志不是特定于平台的,并且在 macOS 上也对我有用

标签: python-3.x pyinstaller executable python-module


【解决方案1】:

我发现--collect-submodules 标志在遇到导入模块错误时很有帮助。 我只需指定所有模块所在的文件夹名称,pyinstaller 会自动收集所有导入。 像这样:

pyinstaller --collect-submodules <folder-name> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多