有人能帮我解决这个问题吗?
ImportError: dlopen(/Users/......./venv/lib/python3.6/site-packages/recordclass/mutabletuple.cpython-36m-darwin.so, 2): Symbol not found: __PyEval_GetBuiltinId
Referenced from: /Users/......./venv/lib/python3.6/site-packages/recordclass/mutabletuple.cpython-36m-darwin.so
Expected in: flat namespace
in /Users/......../venv/lib/python3.6/site-packages/recordclass/mutabletuple.cpython-36m-darwin.so
我用的是苹果电脑,如果这有关系的话
4条答案
按热度按时间6ojccjat1#
我不能完全弄清楚问题是什么,但我假设
__PyEval_GetBuiltinId
被破坏/卸载。所以我所做的就是修复这个问题,然后是
pip uninstall recordclass
,然后是pip install --no-cache-dir recordclass
,它似乎已经工作了nhjlsmyf2#
我遇到了同样的问题,并找到了你的问题。我有一台M1 MacBook,但我认为我们遇到了两个问题。首先,我犯了一个类似的错误:
我修复这个错误的方法是'brew install ___',这个库丢失了,在我的例子中是tesseract。当我brew再次安装它后,我运行了我的脚本,得到了一个新的错误。这一次我有一个
因此,我认为可能发生的是,我们的M1芯片和brew安装的公式之间的兼容性存在潜在错误。我现在正在想办法。我首先要尝试的是从头开始重置我的安装,如果这不起作用,看看替代方案。最终,我认为解决问题的方法是从源代码安装,如OpenCV网站上所述:https://docs.opencv.org/master/d0/db2/tutorial_macos_install.html。
希望这有帮助!
编辑我刚刚完成卸载Homebrew完全和从头开始重新安装它,两桶,公式,一切!而且看起来很有效。我让Tensorflow和OpenCV都工作了(他们都打印了自己的版本,我在OpenCV上运行了一个简单的相机测试)
cx6n0qe33#
这个问题在here中得到了很好的描述。我在macOS M1芯片中的NetCDF4库也遇到了同样的问题。在我的例子中(
NetCDF4@1.5.8
),使用brew和pip安装库并没有解决问题,因为提供的包与M1芯片不兼容。这个问题将在NetCDF@1.6.0
的Github中得到解决。在这种情况下,我建议:
首先,确保您安装了您在系统中使用的库(在本例中为
recordclass
)的依赖项,以防您使用虚拟环境,而不仅仅是在环境中。第二,检查库的轮子是否符合您的机器要求。
vsnjm48y4#
在我的例子中,这发生在M2 Mac Mini和mysqlclient包上。在SO上浏览了各种建议后,对我有效的是以下步骤:
检查系统主机的python使用的版本:
检查virtualenv使用的版本:(venv)% python3 --版本Python 3.9.13
所以virtualenv使用的是不同的python版本。我删除了virtualenv并安装了一个与主机系统相同版本的新virtualenv:
在那之后,在重新安装导致问题的软件包时,它起作用了。