跳到主要內容

從 Anaconda 的 defaults 管道轉換

希望從 Anaconda 的 defaults (即那些託管在 https://repo.anaconda.com/pkgs 下的) 管道轉換的使用者應謹慎操作,以免破壞他們的工作環境。首先要意識到的是,在 2024 年,conda-forge 與 defaults 中提供的套件不相容。通常,conda-forge 上的套件會需要特定套件的較新版本,或者可能只是以不同的方式組織。作為社群,我們唯一可以支援的工作流程是 conda-forge 管道優先於所有其他管道的工作流程。

如果您正在使用 Miniconda 或 Anaconda 發行版,並希望轉為使用 conda-forge,我們概述了兩種工作流程。第一種允許您在不卸載先前安裝的情況下嘗試 conda-forge 的套件,第二種涉及卸載 Miniconda 或 Anaconda 發行版,然後安裝 Miniforge。

在隔離環境中嘗試 conda-forge

  1. 建立一個依賴項非常少的 conda 環境。以下命令將僅使用來自 conda-forge 的套件來安裝 Python 3.11。您可以根據自己的喜好調整 Python 的版本

    conda create --name conda-forge-env python=3 --channel conda-forge --override-channels
  2. 啟用您的環境,並為該特定環境新增具有嚴格優先權的 conda-forge

    conda activate conda-forge-env
    conda config --env --add channels conda-forge
    # optional:
    # conda config --env --remove channels defaults
    conda config --env --set channel_priority strict
  3. 檢查您的 conda 環境的設定

    conda config --show

    這應該報告 conda-forge 是您列表中最頂層的管道。

  4. 您現在可以使用如下命令

    conda install my_desired_package_from_conda_forge

卸載 Anaconda 並安裝 Miniforge

如果您已準備好完全切換到 conda-forge,我們建議卸載 Anaconda / Miniconda,然後安裝 Miniforge。以下步驟是關於如何進行此操作的指南,同時備份您的工作和環境。

  1. 清理您現有的 conda 安裝。這應該會從您的 Anaconda / Miniconda 安裝中移除未使用的檔案,並使備份檔案更小。

    # The conda build purge command may fail if you don't have conda-build installed.
    # this is expected
    conda build purge
    conda clean --all
  2. 建立 conda 安裝的 zip 壓縮檔。使用您最喜歡的圖形化工具,右鍵點擊 Anaconda / Miniconda 安裝資料夾。檢查您是否在安裝根目錄之外建立了其他環境,方法是執行 conda info --envs。如有必要,也備份這些環境。

    • 或者,如果需要,您也可以為所有環境匯出鎖定檔

      conda list --explicit --md5 --prefix /path/to/environment-name > environment-name.txt

      請注意,這些鎖定檔僅包含 conda 套件。如果您在上面 pip install 了套件,則這些套件將不會被捕獲。請查看 conda-lock 以了解這些用例。

    • 另一個有用的檔案是為每個環境建立輸入 environment.yml

      conda env export --from-history --prefix --prefix /path/to/environment-name > environment-name.yml

      此檔案不會捕獲您環境中的確切狀態。相反,它會告訴 conda 要尋找哪些套件,然後找到滿足請求的解決方案。

  3. 在 Windows 上,使用系統控制台中建議的卸載程式。在 Linux 和 macOS 上,您可以刪除名為 anaconda3miniconda3 的資料夾(通常位於您的主目錄中)。

  4. 在您的主目錄中找到名為 .condarc 的檔案,並將其備份到安全的地方。然後,刪除舊的 .condarc 檔案。當我們安裝 Miniforge 時,將會建立一個新的專用於 conda-forge 的檔案。

  5. 在 Linux 和 macOS 上,您的 shell 設定檔 (~/.bashrc) 可能包含先前安裝的初始化程式碼。找到以 # >>> conda initialize >>> 註解括起來的區塊並刪除它。

  6. Miniforge 下載 頁面下載並安裝與您的平台相符的 Miniforge 安裝程式。

  7. 安裝完成後,您應該能夠在 Windows 上使用 Miniforge3 Prompt,或在 Linux 和 macOS 上使用終端機,來執行命令

    conda info

請注意,conda-forge 是具有最頂層優先權的管道。

您現在應該可以使用 conda-forge 套件了。

歷史註記

直到大約 2021 年,conda-forge 與 Anaconda 的預設管道保持著很強的相容性。然而,正如 2021 年 9 月宣布 的那樣,我們決定最終擺脫對 Anaconda 的 defaults 套件的依賴。多年來,這導致 conda-forge 和 Anaconda 的 defaults 管道之間的套件版本和名稱出現更多差異。

在 2024 年,不再支援從 Anaconda 的管道和 conda-forge 共同安裝套件的工作流程。

若要檢查您是否從這兩個來源安裝了套件,請使用命令

conda list --show-channel-urls

所有套件都應指定它們是從 conda-forge 管道安裝的。在 2024 年,仍然存在一些錯誤,其中 conda 套件會聲稱它們是從 PyPI 安裝的,即使它們實際上是從 conda-forge 安裝的。