[英]How can I install two versions of Python on a single Conda Environment?
[英]How can I install a conda environment when offline?
我想在沒有網絡連接的機器上創建一個 conda 環境。 到目前為止我所做的是:
在連接到互聯網的機器上:
conda create -n python3 python=3.4 anaconda
Conda 將所有相關包歸檔到\\Anaconda\\pkgs
。 我把它們放在一個單獨的文件夾中,然后將它移到沒有網絡連接的機器上。 該文件夾的路徑為PATHTO\\Anaconda_py3\\win-64
我試過
conda create -n python=3.4 anaconda --offline --channel PATHTO\Anaconda_py3
這給出了錯誤消息
Fetching package metadata:
Error: No packages found in current win-64 channels matching: anaconda
You can search for this package on Binstar with
binstar search -t conda anaconda
我究竟做錯了什么? 如何告訴 conda 基於此目錄中的包創建環境?
您可以嘗試克隆作為基礎環境的 root。
conda create -n yourenvname --clone root
簡短回答:從具有相同操作系統的另一台機器復制整個環境。
依賴性。 一個包依賴於其他包。 當您在線安裝軟件包時,軟件包管理器conda
分析軟件包依賴關系並為您安裝所有必需的軟件包。
anaconda
的依賴性尤其嚴重。 因為anaconda
是一個元包,依賴於另外 160 多個包。
元包,是不包含實際軟件的包,僅依賴於要安裝的其他包。
把這些依賴一一下載,安裝在離線機器上,簡直是荒唐。
在具有相同操作系統的另一台機器上安裝conda
。 在隔離的虛擬環境中安裝您需要的軟件包。
# create a env named "myvenv", name it whatever you want # and install the package into this env conda create -n myvenv --copy anaconda
--copy
用於
使用副本而不是硬鏈接或軟鏈接安裝所有軟件包。
查找環境的存儲位置
conda info
鍵“envs目錄”的第一個值是位置。 去那里並將名為“myvenv”(上一步中的 env 名稱)的整個子文件夾打包到一個存檔中。
將存檔復制到您的離線機器。 從conda info
檢查“envs目錄”。 並將環境從存檔中解壓到離線機器上的 env 目錄中。
完畢。
你試過沒有 --offline 嗎?
conda create -n anaconda python=3.4 --channel PATHTO\Anaconda_py3
如果我沒有連接到互聯網,如果我的機器上已經有 anaconda 但在另一個位置,這對我有用。 如果您在運行此命令時連接到 Internet,您可能會收到與在 Binstar 上找不到內容相關的錯誤。
這里的很多答案都不是 100% 與“離線時”部分相關的。 他們談論 OP 的其余問題,而不是反映在問題標題中。
如果您來到這里是因為您需要在現有 Anaconda 安裝之上創建離線 env,您可以嘗試:
conda create --offline --name $NAME
您可以在此處找到記錄的--offline
標志
我不確定這是否與其他答案相矛盾或相同,但我按照conda 文檔中的說明在本地文件系統上設置了一個通道。
然后將新的包文件移動到本地目錄,在通道子文件夾(應該有一個類似linux-64
的名稱)上運行conda index
是一件簡單的事情。
我還按照此處所述將 Anaconda 配置offline
設置為True
,但不確定這是否必要。
希望有幫助。
pkgs 目錄不是頻道。 您要查找的標志是--unknown
,這會導致--unknown
將文件包含在pkgs
目錄中,即使在其中一個頻道中找不到這些文件。
這是在 Linux 中對我有用的東西 -
(a) 創建一個空白環境 - 只需在 $CONDA_HOME/envs 下創建一個空目錄。 使用 - conda info --envs 進行驗證。
(b) 激活新的 env - source activate
(c) 在具有 Internet 連接的機器上從https://anaconda.org/anaconda/repo下載適當的包 (*.bz2) 並將其移動到隔離主機。
(d) 使用本地包安裝 - conda install 。 例如 - conda install python-3.6.4-hc3d631a_1.tar.bz2,其中 python-3.6.4-hc3d631a_1.tar.bz2 存在於當前目錄中。
就是這樣。 您可以通過通常的方式(python -V, conda list -n )進行驗證。 所有相關的軟件包都可以以相同的方式安裝。
我發現最簡單的方法如下:
這是一個可能有幫助的解決方案。 它不是很漂亮,但它完成了工作。 所以我想你有一台機器,你有一個 conda 環境,你已經安裝了你需要的所有包。 我將其稱為ENV1。您必須轉到此環境目錄並找到它。 它通常位於\\Anaconda3\\envs
。 我建議壓縮文件夾,但您可以按原樣使用它。 將所需的環境文件夾復制到 anaconda 環境的離線機器目錄中。 第一步應該讓您的新環境響應conda activate
類的命令。
您會注意到,盡管 spyder 和 jupyter 之類的軟件不再起作用(可能是因為路徑差異)。 我對此的解決方案是將離線機器中的基本環境克隆到我將稱為ENV2的新環境中。 然后您需要做的是將ENV2的內容復制到ENV1的內容中並替換文件。
這應該覆蓋與 spyder、jupyter.. 相關的文件,並保持導入的包完好無損。
我有一個類似的問題要解決。 我能夠通過從 anaconda 網站下載的二進制文件在網絡隔離系統上安裝 miniconda。 我需要使用 miniconda 的基本 python 版本在這個系統上創建虛擬環境。
Arthur Alvin 在這個帖子中的帖子解決了我的問題
> conda create -n yourenvname --clone root
$ bash Anaconda2-4.1.1-Linux-x86_64.sh -b -p $HOME/anaconda
$ bash Anaconda3-4.1.1-Linux-x86_64.sh -b -p $HOME/anaconda/envs/py3k
$ rm -f $HOME/anaconda/envs/py3k/bin/conda*
$ rm -f $HOME/anaconda/envs/py3k/conda-meta/conda-*
$ cd $HOME/anaconda/envs/py3k/bin
$ ln -s ../../../bin/conda .
$ rm -f activate
$ rm -f deactivate
$ ln -s ../../../bin/activate .
$ ln -s ../../../bin/deactivate .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.