程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”?

开发过程中遇到MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”的问题如何解决?下面主要结合日常开发的经验,给出你关于MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”的解决方法建议,希望对你解决MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”有所启发或帮助; @H_618_2@CX_Freeze 适用于 windows 和 linux,但不适用于 macOS Big Sur。

@H_618_2@我使用 python 3.8.6 创建了一个 virtualenv:

env PYTHON_CONfigURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6' --enable-framework"
pyenv install 3.8.6
@H_618_2@我可以用 import tkinter 检查这个 virtualenv 是否有模块 tkinter。

>>> import tkinter
>>>
@H_618_2@然后,我用我的 python setup.py build_mac 打包。

@H_618_2@我的setup.py

buildoptions = Dict(
                    packages = [...
                               'tkinter',],include_files = ['/usr/local/Cellar/tcl-tk/8.6.10/lib/tk8.6','/usr/local/Cellar/tcl-tk/8.6.10/lib/tcl8.6',)

base = 'win32gui' if sys.platform=='win32' else None

executables = [
    Executable('mainapp.py',base=base,target_name='mainapp')
]

setup(name='mainapp',options = Dict(build_exe = buildoptions),executables = executables)
@H_618_2@但是在没有安装 tkinter 的新 Mac 上启动应用程序时:

TraceBACk (most recent call last):
file "/Users/thephi/.pyenv/versions/3.8.10/envs/venv3810/lib/python3.8/site-packages/cx_Freeze/initscripts/startup.py",line 81,in run
module.run()
file "/Users/thephi/.pyenv/versions/3.8.10/envs/venv3810/lib/python3.8/site-packages/cx_Freeze/initscripts/Console.py",line 36,in run
exec(code,m.Dict)
file "mainapp.py",line 6,in
file "/Users/thephi/.pyenv/versions/3.8.10/library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/init.py",in
import _tkinter # If this fails your Python may not be configured for Tk
importError: dlopen(/Users/thephi/build/exe.macosx-11.4-x86_64-3.8/lib/_tkinter.cpython-38-darwin.so,2): library not loaded: /usr/local/opt/tcl-tk/lib/libtcl8.6.dylib
Referenced from: /Users/thephi/build/exe.macosx-11.4-x86_64-3.8/lib/_tkinter.cpython-38-darwin.so
Reason: image not found
@H_618_2@如果我使用 brew install tcl-tk 安装 tkinter,它可以正常工作。

解决方法

@H_618_2@暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

@H_618_2@如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

@H_618_2@小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”全部内容,希望文章能够帮你解决MacOS:CX_Freeze 打包 Python 但没有 Tkinter:“库未加载:/usr/local/opt/tcl-tk/lib/libtcl8.6.dylib”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。