谁能解释 LD_LIBRARY_PATH 和 lib-dynload 目录在 Unix 机器上的 Python 中工作的关系。
我问的原因是因为在我的工作地点,我们有一个 Python 的网络安装,它可以在多台 unix 机器上运行(不要问为什么,它是一堆奇怪的政治怪癖。)它适用于大多数系统较旧,但在较新的系统上,当人们尝试使用 tkinter 框架时会遇到问题(因为这些机器安装了较新版本的底层库。)
我做了一些探索,在 lib-dynload 目录中有另一个库文件,它似乎只是指示 Python 将哪个库用于 tkinter 东西。
做了一些摆弄,我找到了一种绕过问题的方法(本质上,将库的新版本放在用户的 LD_LIBRARY_PATH 的前面似乎可以解决问题。我认为它可以工作,因为它在版本之前找到了这个版本的库在 lib-dynload 文件夹中,但如果您尝试在其中一台较旧的机器上这样做,它会中断),但这确实是一个不雅的解决方案。