У меня есть файл main.py
, который соответствует структуре каталогов, как показано ниже
Mypackage
├──src
| ├──main.py
| ├──main.spec
| └──settings.py
└──data
main.py
как показано ниже
import numpy as np
from src.settings import args
Мой main.spec
файл, как показано ниже
a = Analysis(['main.py'],
pathex=['../src'],
binaries=[],
datas=[],
hiddenimports=['../src', '../src/settings.py', '../src/utils.py', '../src/paramtree_v2.py'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=True)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir='.',
console=True )
pyinstaller
успешно создает автономный файл, однако при запуске приложения я получаю сообщение об ошибке ModuleNotFoundError: No module named 'src'
. Как мне изменить main.spec
, чтобы избежать этой ошибки?
Одним из способов решения этой проблемы является то, что в моем файле main.py
я просто использую from settings import args
, однако я хочу максимально сохранить структуру кода.
[EDIT]
Это работает после того, как я использую noarchive=False
в файле main.spec