我目前正在与Tkinter进行个人项目,我想将所有内容打包到macOS应用中。
不幸的是,用于创建生产版本的命令无法正常工作,而且我始终会遇到与“找不到模块”相关的错误
Modules not found (conditional imports):
* ConfigParser (dogpile.util.compat)
* Cookie (requests.compat)
* OpenSSL.crypto (urllib3.contrib.pyopenssl)
* Queue (urllib3.util.queue)
* StringIO (dogpile.util.compat, pkg_resources._vendor.six, requests.compat, six, urllib3.packages.six)
* backports.functools_lru_cache (soupsieve.util)
* cPickle (dogpile.util.compat)
* colors (tkmacosx.variables)
* com (pkg_resources._vendor.appdirs)
* com.sun.jna (pkg_resources._vendor.appdirs)
* com.sun.jna.platform (pkg_resources._vendor.appdirs)
* cookielib (requests.compat)
* copy_reg (soupsieve.util)
* cryptography.x509.extensions (urllib3.contrib.pyopenssl)
* regex (rebulk.remodule)
* sympy (subliminal.score)
* thread (dogpile.util.compat)
* urllib2 (requests.compat)
* urlparse (requests.compat)
* win32com (pkg_resources._vendor.appdirs)
* win32com.shell (pkg_resources._vendor.appdirs)
* yaml (guessit.options)
我尝试了许多解决方法,但是没有任何效果。
我使用的模块:
tkinter
subliminal
tkmacosx
答案 0 :(得分:1)
关于未找到的模块的消息是警告,不是错误。这些可能有问题也可能没有,但通常不是问题。尤其是,如果您使用Python 3,则几乎可以肯定各种“ compat”模块中缺少的可选模块是无害的(因为它们是Python 2 stdlib中名称的导入)。
乍一看,缺少的“ sympy”,“ regex”和“ yaml”可能有问题,您可以尝试安装这些python软件包。
作为背景知识,PyObjC在构建结束时显示了3个缺少的模块列表(假设类别中有缺少的模块):
无条件导入:这些是在导入模块时始终执行的导入(顶级导入和类作用域中的导入)
除非包含导入的模块本身是可选的,否则这些问题往往会出现。
有条件的导入:这些是有条件的导入,因为它们是在函数中完成的,或者是因为它们在某种条件的语句中。
这些往往无害。
“从FOO导入名称”语句中缺少名称:在这些语句中,“名称”可以引用模块或导入模块中的定义。当不能100%清除NAME指向模块时,Py2app将报告这些。
这些倾向于无害,尤其是当模块(“ FOO”)是C扩展时。