一直在躲 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,这种属于连根拔了,对我这种情况肯定用不了。
  • 还有人说是自己弄软连接。这种方法我说实话,临时用一下还行,但是这肯定不是长期可靠的方案,因为如果多个虚拟环境,那你连接的能累死。

希望能帮到有需要的人~

更多推荐