如何导入 PyInstaller 规范文件中被冻结的包?
How to import the package being frozen in the PyInstaller spec file?
我有这个目录结构:
mypackage/
|___ installer.spec
|___ package/
|___ __init__.py
和 package.__init__.py
包含一些我想在我的 installer.spec
文件中使用的变量。
所以这个文件包含 import package
行。
但是,mypackage/ 中的 运行 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
参考:How to import a module given the full path?
我有这个目录结构:
mypackage/
|___ installer.spec
|___ package/
|___ __init__.py
和 package.__init__.py
包含一些我想在我的 installer.spec
文件中使用的变量。
所以这个文件包含 import package
行。
但是,mypackage/ 中的 运行 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
参考:How to import a module given the full path?