【问题标题】:ModuleNotFoundError for folder when using PyInstaller on Windows command line在 Windows 命令行上使用 PyInstaller 时文件夹的 ModuleNotFoundError
【发布时间】:2018-12-04 00:35:35
【问题描述】:

我正在 PyCharm 上构建一个 kivy 应用程序。我的 Test.py 导入 testone.py 并从中运行一个函数。当我在 PyCharm 中运行 Test.py 时,应用程序构建并运行良好。但是,为了构建应用程序的 .exe,我在命令行中运行以下命令:

python -m PyInstaller --name TestAppWD9 --onefile --add-data "Desktop\KivyUdemyCourse\AdvKivywKV\testone.py;Desktop\KivyUdemyCourse\AdvKivywKV\testone.py" C:\Users\jgldm\Desktop\KivyUdemyCourse\AdvKivywKV\Test.py

我得到类似这样的规范文件:

# -*- mode: python -*-
from kivy.deps import sdl2, glew
import pygame.pkgdata

block_cipher = None


a = Analysis(['C:\\Users\\jgldm\\Desktop\\KivyUdemyCourse\\AdvKivywKV\\Test.py'],
             pathex=['C:\\Users\\jgldm'],
             binaries=[],
             datas=[('Desktop\\KivyUdemyCourse\\AdvKivywKV\\testone.py', 'Desktop\\KivyUdemyCourse\\AdvKivywKV\\testone.py')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
          [],
          name='TestAppWD9',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=True )

当我运行从规范文件构建的应用程序时,我得到 ModuleNotFoundError: No module named 'AdvKivywKV'

如何获取规范文件以查找并包含 AdvKivywKV?

【问题讨论】:

  • 在 Windows 上运行 AdvKivywKV 时是否在同一文件夹中?
  • 为 Windows 构建应用程序?这是我不知道的功能吗?
  • @HSK AdvKivywKV 是 Test.py 和 testone.py 的公共文件夹。我想将 testone.py 中的一个函数导入到 Test.py 中。
  • @HSK:我没有在构建之间移动公共文件夹

标签: python-3.x pycharm kivy python-import pyinstaller


【解决方案1】:

需要通过将 testone.py 放入带有__init__.py 文件的子文件夹来修复文件夹结构。后者可以为空。在此之后我将导入更改为from subfolder_name.testone import function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2021-03-30
    • 2018-01-06
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多