如何在PyInstaller规范文件中导入被冻结的包?



我有这样的目录结构:

mypackage/
|___ installer.spec
|___ package/
|___ __init__.py

package.__init__.py包含一些我想在我的installer.spec文件中使用的变量。所以这个文件包含一个import package行。但是,在myppackage/中运行pyinstaller installer.spec失败,ModuleNotFoundError

我如何从我想冻结的包中检索变量,同时冻结它与PyInstaller?

在规范文件中,修改

import package
foobar = package.foobar

import importlib.util
spec = importlib.util.spec_from_file_location(
"package", "/full/path/to/package/__init__.py"
)
package = importlib.util.module_from_spec(spec)
spec.loader.exec_module(package)
foobar = package.foobar

参考:如何导入给定完整路径的模块?

最新更新