在 Windows 命令行上使用 PyInstaller 时文件夹的 ModuleNotFoundError
ModuleNotFoundError for folder when using PyInstaller on Windows command line
我正在 PyCharm 上构建一个 kivy 应用程序。我的 Test.py 从中导入 testone.py 和 运行s 函数。当我 运行 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: No module named 'AdvKivywKV'
如何获取规范文件以查找并包含 AdvKivywKV?
需要修复文件夹结构,方法是将 testone.py 放入包含 __init__.py
文件的子文件夹中。后者可以为空。在此之后我将导入更改为 from subfolder_name.testone import function
我正在 PyCharm 上构建一个 kivy 应用程序。我的 Test.py 从中导入 testone.py 和 运行s 函数。当我 运行 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: No module named 'AdvKivywKV'
如何获取规范文件以查找并包含 AdvKivywKV?
需要修复文件夹结构,方法是将 testone.py 放入包含 __init__.py
文件的子文件夹中。后者可以为空。在此之后我将导入更改为 from subfolder_name.testone import function