- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
简化的 MWE => 假设我有 Anaconda 并执行以下操作:
conda create -n demo python=3.6
conda activate demo
conda install seaborn
最后一个命令安装 39 个新软件包,包括 seaborn
、matplotlib
和 pandas
。现在假设时间过去了,我继续设置环境并希望显式安装 matplotlib
和 pandas
:
conda install matplotlib pandas
这告诉我“所有请求的软件包都已安装”,这没关系。但是现在,如果我决定不再需要 seaborn
并将其删除,
conda remove seaborn
这会删除安装 seaborn
时安装的所有 39 个软件包,包括 matplotlib
和 pandas
,这是我在之后明确安装的!如何避免这个问题?
我的预期行为是 conda remove seaborn
删除 seaborn
及其所有依赖项,但不删除任何包(或依赖项)其中)在 seaborn
之前或之后显式安装。有些人可能会说只需卸载 seaborn
和所有 39 个软件包,然后手动重新安装 matplotlib
和 pandas
即可。这在微不足道的情况下有效,但是一旦有例如25 个具有复杂相互依赖关系的包,这变得非常复杂,并且至少维护起来非常麻烦。
作为一个具体示例,如何构建一个完整的 Anaconda 环境,减去特定的包以及依赖于它的包?我尝试过:
conda create -n test python=3.6 anaconda
conda remove libtiff # I want this to strictly only remove libtiff and its recursive dependents, but obviously this is not what happens
但是第二行基本上删除了整个环境中的每个包,因为它删除了 anaconda
。有什么想法吗?
最佳答案
我想不出一种自动化的方法来做到这一点,但如果你绝对必须实现这一点,那么一种巧妙的方法是:
仅删除您想要的包:
conda remove --force libtiff
触发一致性检查以获取现已损坏的包的列表:
conda install -d python
如果有包,则迭代(即通过步骤 1 删除它们);否则,你就完成了。
实际上,您还没有完成,因为现在每次您尝试更改环境时,每个不依赖于显式规范的包都会被建议删除。下一步可能是:
导出生成的环境:
conda env export -n my_env > env.yaml
重新创建环境:
conda env remove -n my_env
conda env create -n my_env -f env.yaml
现在所有的软件包都将是明确的规范,这也不一定是一件好事,但至少确保它们不会在以后的更新中被删除。
就我个人而言,我认为这是一个坏主意,并且没有真正看到其动机。我认为最好从您知道需要的包开始,将它们放入 YAML 定义中,然后从中创建环境。
关于python - Conda删除卸载的软件包比预期多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58441645/
当我做 rpm -qa | grep nano我可以看到 Nano 文本编辑器已安装到我的 CentOS 机器上。 但是当我做 rpm -qpi nano-2.9.8-1.el8.x86_64.rpm
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 4年前关闭。 Improve this qu
我无法使用“yum”命令在RHEL服务器上安装“graphviz” 我下载了graphviz rhel.repo,并将其保存在/etc/yum.repos.d/上,然后使用“yum-y install
我想用 Go 检查 dot 包是否已安装并可在当前 OS 上执行。 我的第一个想法是检查 PATH 变量中的 /dot 字符串?有没有更好的方法来使用 Go 获取可执行/已安装的包? 任何建议都会有所
我已经在我的 ubuntu 上安装了 R(3.4.0)。我想使用 EdgeR 包。我尝试按照 Bioconductor 网站上的安装说明安装 Bioconductor 软件包。 我在 R 中使用了以下
我已经自定义编译了我自己的 ffmpeg 版本,并从这个包中制作了一个 .deb 文件。包描述如下control.txt Package: ffmpeg Version: 4.3-ubuntu1804
我正在尝试构建一个 debian 软件包,它会自动配置我所有的机器以使用相同的配置文件和设置。 例如,我正在尝试设置诸如 alter/etc/default/hostapd 之类的内容。我目前正在通过
我的configuration.nix中有一些要覆盖的软件包。因此,我将代码编写如下: nixpkgs.config = { allowUnfree = true; packageOverri
我想将我的 Ubuntu 从 19.04 升级到 20.04,但在我更新所有软件包之前这是不可能的。 ❯ sudo do-release-upgrade Checking for a new Ubun
我安装了 Homebrew 软件,但是我没有管理员权限。如何在没有管理员访问权限的情况下安装 Homebrew 软件包?是否有本地标签或我一直缺少的东西? 最佳答案 Homebrew 需要 /usr/
我想重建/重新编译具有特定标志的机器的所有 Debian 软件包。 我怎样才能用尽可能少的命令来做到这一点? 我发现 https://debian-administration.org/article
请帮我在 R 中安装 Rmpfr 包。 结果是: 安装包“Rmpfr”的退出状态非零,我无法安装它。 R控制台的代码发布如下: * installing *source* package ‘Rmpfr
有没有办法从这一行下载所有软件包,将它们保存在本地,然后将它们安装到没有互联网连接的机器上? yum install -y qemu-kvm qemu-img virt-manager libvirt
以下 R 命令将安装所有 CRAN 软件包: availablePackages <- available.packages()[,1] install.packages(availablePacka
我正在尝试在 OS X 10.12.6 上安装 RCurl,但出现以下错误: Error: package or namespace load failed for ‘RCurl’ in dyn.lo
我正在尝试自动设置开发人员机器软件安装。当您连接到 Internet 时,Chocolatey 很适合安装软件包。有没有办法离线安装软件包? 我只想将所有包放在共享网络文件夹中并使用该包进行安装。如果
这很奇怪,list-packages 缓冲区将实际安装的某些软件包的状态显示为“可用”。该列不应该为他们显示“已安装”吗?当我单击其中一个时,会打开一个新缓冲区,通知我该软件包已安装,但不提供卸载选项
我刚开始学习 Dart 。 首先,我从https://angular.io/docs/dart/latest/quickstart.html创建了一个基于angular2-dart的项目,它正常工作。
我在 ~/R/i486-pc-linux-gnu-library/2.11 下安装了一些 R 软件包。 我想让它们以及我从现在开始安装的任何其他 R 软件包可供所有 R 用户使用。我不介意在一个中立的
我是Renjin的新手,无法使用AetherPackageLoader安装软件包。我收到与Renjin can't load pckages中相同的错误,但看似正确的Gradle文件(请注意a4Bas
我是一名优秀的程序员,十分优秀!