ModuleNotFoundError для папки при использовании PyInstaller в командной строке Windows - PullRequest
0 голосов
/ 04 декабря 2018

Я создаю приложение для Kivy на PyCharm.Мой Test.py импортирует testone.py и запускает из него функцию.Когда я запускаю Test.py в PyCharm, приложение собирается и работает нормально.Но затем, чтобы создать .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: Нет модуля с именем 'AdvKivywKV'

Как получить файл спецификации для поиска и включения AdvKivywKV?

1 Ответ

0 голосов
/ 05 декабря 2018

Необходимо исправить структуру папок, поместив testone.py в подпапку с файлом __init__.py.Последний может быть пустым.После этого я изменил импорт на from subfolder_name.testone import function

...