好吧,在阅读Fabio Nelli的《Python数据分析》一书时,我和熊猫玩过之后,我意识到有多少熊猫是一个很棒的库。

所以,我一直在和水蟒合作,让它在我的环境中工作。

1-下载Anaconda安装程序并安装它(我想miniconda就足够了)

2-通过镜像anaconda存储库的(部分)创建本地通道

不要试图在工作站上下载单个软件包以将其推送到脱机服务器。事实上,依赖关系不会得到满足。

包需要包含在通道中,并在元数据文件(repodata.json和repodata.json.bz2)中建立索引,才能正确地“粘合”在一起。

我用wget镜像了水蟒存储库的一部分: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”这样的软件包。实际上,repo中的许多包的名称中都没有版本字符串;而且您会将它们作为依赖项而忽略掉。

好吧,我想你可以更准确地过滤。我拿到了大约6GB的包裹!

!!!!不要从您刚刚下载的存储库部分构建自定义频道!!!!(Python自定义频道)

我首先尝试了这个方法,但出现了一个异常:“RecursionError:调用Python对象时超过了最大递归深度”。

这是已知的pb:

https://github.com/conda/conda/issues/2371

==>维护人员讨论了这一点:repodata.json和repodata.json.bz2中维护的元数据不反映单个pkg中的元数据。他们选择只编辑repo元数据来修复问题,而不是每个包元数据。

因此,如果从包中重建通道元数据,则会丢失。

==>所以:不要重建通道元数据,只需保留存储库元数据(repodata.json和repodata.json.bz2包含在官方anaconda存储库中)。

即使整个回购协议不在您的新通道中,它也会工作(至少,如果在镜像时没有过滤到太多;-)

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

省略你的arch(在我的例子中是linux-64)。康达会发现的。

更新:conda update -c file://resto/anaconda_repo/repo.continuum.io/pkgs/free/ --override-channels --all

等等。。。

我想,您可以使用系统用户的conda conf文件强制使用这个本地通道。

希望有帮助。

纪尧姆