为Anaconda创建脱机包文件夹

时间:2018-07-11 13:12:21

标签: python anaconda

我已经为正在使用的python程序更新了anaconda软件包。现在,我想在脱机的计算机上安装这些新软件包。

我已使用以下命令生成了已安装软件包的列表:

>conda list -e > packagelist.txt

我希望能够使用以下方式更新脱机计算机上的软件包:

>conda install --file (location of 'packagelist') --channel file://(location of the folder where the packages are located)

所以我的问题是:如何轻松地创建一个文件夹“ pkgs”,其中包含我的软件包列表中指示的所有软件包文件?

我可以只使用当前的Anaconda安装位置中的整个“ pkgs”文件夹吗?还是不是我的软件包列表中的软件包不一定安装在其中?

如果问题是“ nooby”,我深表歉意,老实说,我不知道该怎么办。期待任何帮助。

1 个答案:

答案 0 :(得分:7)

如果其他人为此感到挣扎,这些是我采取的步骤:

  1. 创建一个文件,其中包含当前环境中安装的所有软件包的名称。一种方法(已经显示了问题)是在命令提示符下(以admin身份运行)输入以下内容:

    conda list -e > packagelist.txt

  2. 转到Anaconda安装目录中的“ pkgs”文件夹。复制所有 zipped 软件包(仅 扩展名为“ .tar.bz2”的软件包),然后将其粘贴到另一个文件夹中,将其命名为“ pkgs2 “。

  3. 将创建的“ packagelist”文本文件中的软件包与创建的新文件夹“ pkgs2”中的软件包进行比较。删除较旧的软件包版本。例如,“ pkgs2”文件夹中可能有两个不同的numpy版本。如有必要,请删除过时的。

  4. 创建 index repodata 文件。我不确定为什么。重要的是“ repodata.json.bz2”文件。您可以通过在命令提示符下键入以下命令来创建它(显然,“ pkgs2”可能位于其他位置,因此请进行相应调整):

    conda index C:\Users\myName\Desktop\pkgs2

    如果出现以下错误:

    Indexing a copy of the Anaconda conda package channel is neither necessary nor supported. If you which to add your own packages, you can do so by adding them to a separate channel.

    然后,您必须转到“ pkgs2”文件夹并删除“ _license”软件包。我不知道它为什么起作用,但是它可以(从Google搜索中看到了错误的解决方案)。

    索引建立完成后,您应该看到3个新文件已添加到“ pkgs2”文件夹中。它们被称为“ .index.json”,“ repodata.json”和“ repodata.json.bz2”。

  5. 您现在可以将“ pkgs2”文件夹和“ packagelist.txt”传输到另一台计算机。如果计算机尚未安装,则还可以包括用于安装anaconda的安装文件。要脱机安装新的/更新的软件包,请在已安装anaconda的脱机计算机上的命令提示符下输入以下内容(再次,相应地,明显地调整文件名和位置):

    conda install --file C:\Users\myName\Desktop\OfflineInstall\packagelist.txt --channel file://C:\Users\myName\Desktop\OfflineInstall\pkgs2

  6. 如果一切顺利,您应该在命令提示符下看到以下内容: screenshotcmd。一旦安装了新软件包,就完成了!

但是,您可能会在第5步中遇到以下问题(这只是一个示例):

UnsatisfiableError: The following specifications were found to be in conflict:
  - matplotlib 1.4.3 np19py27_1 -> pyparsing 2.0.3
  - pyparsing 2.2.0 py27_0
Use "conda info <package>" to see the dependencies for each package.

相应地调整软件包,删除不需要的软件包或更新显示的软件包。从第4步开始重复,最后应该没问题。

希望这对某人有帮助!