Miniconda中的错误信息undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0如何解决
·
一直在躲 Miniconda,还是没躲过,今天用 FaceFusion 必须要 Miniconda 了。今天在安装 FaceFusion 到最后临门一脚的时候,出现了以下错误:

这个问题原因是符号在库里查找不到。这个不是 FaceFusion 的问题,而是 Miniconda 配置环境的原因。
因为不同版本的 Python 和一些包很多时候别看只有二级甚至三级版本更新,但是差别很大,比如某些函数的参数会发生变化,所以很多时候必须要某些指定某一版本的包或者 Python。为了不同的程序使用不同版本的 Python 和包,你要自己安装一堆,然后每次强制使用Python3.9这种样式。这样太麻烦了,有困难就有人找方法,Miniconda 主打一个“虚拟”环境就是“自动化”实现上面的工具。
但是 Miniconda 还是有点“问题”,它也有包管理的功能,但是各家系统都已经有了自己的包管理系统,比如 Mac 的 Homebrew,Ubuntu 的 APT,Miniconda的手有时候搞不清其他包管理系统干的事情,就会出现问题,我遇到的这个问题就是因为这个原因。
所以解决方案非常简单,直接在需要的环境下,用 Miniconda 安装一次curl就行了。
(facefusion) zhonguncle@zhonguncle-Precision-Tower-5810:~$ conda install curl
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/zhonguncle/miniconda3/envs/facefusion
added / updated specs:
- curl
The following packages will be downloaded:
package | build
---------------------------|-----------------
curl-8.11.1 | hdbd6064_0 90 KB
libcurl-8.11.1 | hc9e6f67_0 454 KB
------------------------------------------------------------
Total: 544 KB
The following NEW packages will be INSTALLED:
c-ares pkgs/main/linux-64::c-ares-1.19.1-h5eee18b_0
curl pkgs/main/linux-64::curl-8.11.1-hdbd6064_0
krb5 pkgs/main/linux-64::krb5-1.20.1-h143b758_1
libcurl pkgs/main/linux-64::libcurl-8.11.1-hc9e6f67_0
libedit pkgs/main/linux-64::libedit-3.1.20230828-h5eee18b_0
libev pkgs/main/linux-64::libev-4.33-h7f8727e_1
libnghttp2 pkgs/main/linux-64::libnghttp2-1.57.0-h2d74bed_0
libssh2 pkgs/main/linux-64::libssh2-1.11.1-h251f7ec_0
lz4-c pkgs/main/linux-64::lz4-c-1.9.4-h6a678d5_1
zstd pkgs/main/linux-64::zstd-1.5.6-hc292b87_0
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
我看过一些其他博客里写的解决方案:
- 有些人说是删除 Miniconda,这种属于连根拔了,对我这种情况肯定用不了。
- 还有人说是自己弄软连接。这种方法我说实话,临时用一下还行,但是这肯定不是长期可靠的方案,因为如果多个虚拟环境,那你连接的能累死。
希望能帮到有需要的人~
更多推荐



所有评论(0)