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”,我深表歉意,老实说,我不知道该怎么做。期待任何帮助。
解决方案
如果其他人正在为此苦苦挣扎,这些是我采取的步骤:
创建一个文件,其中包含当前环境中安装的所有包的名称。一种方法(已在问题中显示)是在命令提示符下键入以下内容(以管理员身份运行):
conda list -e > packagelist.txt
转到位于 Anaconda 安装目录中的“pkgs”文件夹。复制那里的所有压缩包(只有那些具有“.tar.bz2”文件扩展名的包),并将它们粘贴到另一个文件夹中的某个地方,我们称之为“pkgs2”。
将您创建的“packagelist”文本文件中的包与您创建的新文件夹“pkgs2”中的包进行比较。删除较旧的软件包版本。例如,您的“pkgs2”文件夹中可能有两个不同的 numpy 版本。如有必要,删除过时的。
创建索引和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”。
您现在可以将“pkgs2”文件夹和“packagelist.txt”传输到另一台计算机。如果计算机尚未安装 anaconda,您还可以包含用于安装 anaconda 的设置文件。要离线安装新的/更新的软件包,请在安装了 anaconda 的离线计算机上的命令提示符中输入以下内容(再一次,不经意地相应地调整文件名和位置):
conda install --file C:\Users\myName\Desktop\OfflineInstall\packagelist.txt --channel file://C:\Users\myName\Desktop\OfflineInstall\pkgs2
但是,您可能会在第 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 步开始重复,最后你应该没问题。
希望这对某人有帮助!
推荐阅读
- reactjs - 如何正确处理受控反应输入中的压力字符?
- javascript - ES6/Typescript:根据其他数组中的项目过滤对象数组?
- android - Android模拟器 - 相机错误 - 无法连接到相机
- c# - 在 ASP.NET MVC 中验证发布数据
- jquery - jQuery脚本在到达日期后添加类
- node.js - 防止 webpack 接触环境变量?
- crc - CRC 查表优化是如何工作的?
- c - 访问 C 文件中的汇编宏函数/指令
- github - 在 GitHub 上为发布标记提交的方法是什么?
- node.js - Actions on Google 的登录方法存在问题