首页 > 解决方案 > 为 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”,我深表歉意,老实说,我不知道该怎么做。期待任何帮助。

标签: pythonanaconda

解决方案


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

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

    conda list -e > packagelist.txt

  2. 转到位于 Anaconda 安装目录中的“pkgs”文件夹。复制那里的所有压缩包(只有那些具有“.tar.bz2”文件扩展名的包),并将它们粘贴到另一个文件夹中的某个地方,我们称之为“pkgs2”。

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

  4. 创建索引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”包。我不知道它为什么有效,但它确实有效(从谷歌搜索中看到了错误的解决方案)。

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

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

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

  6. 如果一切顺利,您应该在命令提示符中看到类似这样的内容: 截图cmd. 一旦安装了新软件包,您就完成了!

但是,您可能会在第 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 步开始重复,最后你应该没问题。

希望这对某人有帮助!


推荐阅读