在阅读Fabio Nelli的书《Python数据分析》时,我尝试使用Pandas,并意识到它是一个非常棒的库。因此,我一直在使用Anaconda在自己的环境中工作。
1- 下载并安装Anaconda安装程序(我想miniconda就足够了)
2- 通过镜像(部分)anaconda存储库来创建本地渠道
不要尝试在工作站上下载单个软件包,然后将它们推送到离线服务器上。的确,依赖关系无法满足。
软件包需要包含在频道中,并在元数据文件(repodata.json和repodata.json.bz2)中进行索引,以便正确地“粘合”在一起。
我使用wget来镜像anaconda存储库的一部分:https://repo.continuum.io/pkgs/
我使用类似于这样的内容来过滤软件包,以便不下载整个仓库:
wget -r --no-parent -R --regex-type pcre --reject-regex '(.*py2[67].*)|(.*py[34].*)' https://repo.continuum.io/pkgs/free/linux-64/
请注意,不要使用类似“仅py35”这样的软件包。实际上,仓库中许多软件包在其名称中没有版本字符串;如果你忽略了它们作为依赖项,就会错过它们。
好吧,我想你可以更精确地过滤。我下载了大约6GB的软件包!
!!!! 不要从刚刚下载的仓库部分构建自定义渠道 !!!!(Anaconda自定义渠道)
我最初尝试了这个并遇到了这个异常:“RecursionError:calling Python对象时超出了最大递归深度。”
这是一个已知的问题:
https://github.com/conda/conda/issues/2371
==> 维护者正在讨论此事:维护在repodata.json和repodata.json.bz2中的元数据不反映单个pkg中的元数据。他们选择仅编辑仓库元数据以解决问题,而不是每个软件包元数据。
因此,如果你从软件包重新构建渠道元数据,你将会错过一些东西。
==> 所以:不要重新构建渠道元数据,只需保留仓库元数据(包含���官方Anaconda仓库中的repodata.json和repodata.json.bz2)。
即使整个仓库不在你的新渠道中,它也会工作(至少,在你进行镜像时没有进行过多的过滤;-) )
3-测试和使用你的新渠道
conda search -c file://Path_to_your_channel/repo.continuum.io/pkgs/free/ --override-channels
注意:在路径中不要包括您的平台架构。
例如:您的频道树可能是:/Path_to_your_channel/repo.continuum.io/pkgs/free/linux-64
只需省略您的架构(在我的情况下是linux-64),Conda会找出。
更新:
conda update -c file://resto/anaconda_repo/repo.continuum.io/pkgs/free/ --override-channels --all
等等,我想你可以使用系统用户的conda配置文件来强制使用这个本地频道。
希望有所帮助。
Guillaume
conda
。 - tmthydvnprt