当我在Python3和Mac OS上启动我的 flask 应用程序时,我面临着这个错误:
操作错误:无法加载库“gobject-2.0- 0”:稀释剂(目标-2.0 -0,2):找不到映像。此外,ctypes.util.find_library()无法找到名为“gobject-2.0-0”的库
我在我的项目中使用weasyprint
,这导致了这个问题。
我尝试安装glib
,它安装在我的系统中。
当我在Python3和Mac OS上启动我的 flask 应用程序时,我面临着这个错误:
操作错误:无法加载库“gobject-2.0- 0”:稀释剂(目标-2.0 -0,2):找不到映像。此外,ctypes.util.find_library()无法找到名为“gobject-2.0-0”的库
我在我的项目中使用weasyprint
,这导致了这个问题。
我尝试安装glib
,它安装在我的系统中。
4条答案
按热度按时间kmpatx3s1#
我刚刚在我的Mac M1上解决了同样的问题。
问题是没有创建到库的符号链接(不能说安装时是由homebrew还是weasyprint完成)。
所以我只能手动操作
这就解决了问题。
为了测试Python是否可以找到您可能运行的库
**UPD.**如果使用
homebrew
安装python
,则不会出现此问题。xeufq47z2#
要详细说明有关Apple Silicon(M1)Mac的现有答案:
如果您已经安装了Homebrew的软件包,但仍然没有在
/usr/local/lib
下找到或链接它们,这是因为它们安装在arm64上,而在/opt/homebrew/lib
下找到。如果你使用的Python是安装在Homebrew上的,那么它应该不需要任何额外的工作就可以工作,但是系统Python和任何托管Python版本(例如安装在Pyenv上的)都需要一些配置。
1.手动符号链接
您可以链接
/opt/homebrew/lib
的内容,而不是将每个库单独链接到/usr/local/lib
(只要您没有现有的/usr/local/lib
目录):只要您要查找的库不是来自仅限于桶的配方(这些配方必须单独链接),这就可以工作。
2.环境变量
很多答案都指向设置一些环境变量,比如
LDFLAGS
或DYLD_LIBRARY_PATH
来添加库的搜索路径,但是根据我的测试,这些环境变量不适用于Python:macOS自带系统完整性保护(SIP),它可以清理子进程中的环境变量,例如Python。任何以
LD
或DYLD
开头的内容都将被清除,因此在终端配置文件中设置环境变量将不起作用。你可以Disable SIP来让这些工作,但苹果建议只在需要的时候暂时这样做。
如果你决定走这条路,这里有几个选择:
在Homebrew的Github discussions中,通过设置
LDFLAGS
回答了这个问题:同样,您可以将必要的路径添加到
DYLD_LIBRARY_PATH
iqih9akk3#
如果你在你的虚拟环境中安装了
weasyprint
软件包,但是没有安装一些必需的软件包,那么这可能就是原因,在我的例子中确实是这样。如果你是mac用户,你需要安装
pango
和libffi
,更不用说python了。mac上的安装指南
qnzebej04#
我在自制程序更新后也遇到了同样的问题。原来这个问题是因为旧的
pango
lib版本。我做了
brew install pango
这将
pango
库从1.48.2升级到1.50.4,内部安装了gobject的最新版本作为dep。