gpt4 book ai didi

python - py2exe:排除要导入其所有部分的包的部分

转载 作者:行者123 更新时间:2023-11-28 19:21:05 24 4
gpt4 key购买 nike

我正在尝试运行 py2exe 并最小化第三方依赖项。我试图只包含一个巨大的第三方包的一小部分必要部分,但无法弄清楚如何防止包的 __init__.py,它导入了很多我不知道的东西不想在运行时被调用。

总结一下情况:

myscript.py:   from BigPackage.SmallSubset import TheOnlyFunctionIReallyNeed

BigPackage/__init__.py: import SmallSubset, HugeUnwantedSubset
BigPackage/SmallSubset.py: import AcceptableDependencies
BigPackage/HugeUnwantedSubset.py: import UnacceptablyHugeDependencies

问题是,即使我成功包含了 BigPackage 的某些部分但没有包含其他部分,当在运行时调用 import BigPackage.SmallSubset 时,BigPackage/__init__.py 首先运行,然后尝试导入排除的部分并因此引发异常。如果我可以说服 py2exe 包含 BigPackage/SmallSubset.py BigPackage/__init__.py 会起作用,但我没有幸运的是让 py2exe 理解了这个想法。我在我的 setup.py 中尝试了以下内容:

import BigPackage     # let's try a Deny/Allow approach:
options[ 'py2exe' ][ 'excludes' ].append( 'BigPackage' )
options[ 'py2exe' ][ 'includes' ].append( 'BigPackage.SmallSubset' )
# nope, py2exe fails with 'ImportError: No module named BigPackage' in py2exe/mf.py

...和/或:

import BigPackage     # this seems less plausible, but worth a try:
options[ 'py2exe' ][ 'excludes' ].append( 'BigPackage.__init__' )
# nope, __init__.pyc still turns up in dist

...和/或:

import BigPackage     # really getting desperate now:
options[ 'py2exe' ][ 'excludes' ].append( BigPackage.__file__ )
# nope, __init__.pyc still turns up in dist

...没有运气。有人知道如何解决这个问题吗?

最佳答案

如果不修补 BigPackage 库,您想要的是不可能的。

关于python - py2exe:排除要导入其所有部分的包的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com