首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何破解Anaconda3的conda以忽略包依赖关系?修改后的conda-meta包JSON取决于标志,但这还不够

如何破解Anaconda3的conda以忽略包依赖关系?修改后的conda-meta包JSON取决于标志,但这还不够
EN

Stack Overflow用户
提问于 2022-02-28 23:37:15
回答 1查看 447关注 0票数 2

好的,我有一个包Pythran,它是PythontoC++ (PYD模块)编译器。康达锻造上的包裹本身表示,它需要clangclangxx。但是我已经安装了MS构建工具clang-12,所以这些包根本不使用。

现在每次我去conda install [package_name]时,它都会告诉我我的环境不一致,因为我强制通过a删除了我不需要(或不想要)的clang库:

代码语言:javascript
复制
conda remove clang clangxx clang-13 --force

所以我环顾四周看了一下东西的安装。我发现有一个\Anaconda3\conda-meta\pythran-0.11.0-py39h832f523_0.json (请注意版本更改后的名称).

所以我打开了那个文件,滚动到:

代码语言:javascript
复制
 "depends": [
    "beniget 0.4.*",
    "decorator",
    "gast 0.5.*",
    "numpy >=1.19.5,<2.0a0",
    "ply >=3.4",
    "python >=3.9,<3.10.0a0",
    "python_abi 3.9.* *_cp39",
    "xsimd >=8.0.5,<8.1"
  ],

其中有这些条目,我手动删除了:

代码语言:javascript
复制
"clang",
"clangxx",

所以现在,当我去运行conda时,它不再说我的环境不一致了。但是,当我尝试添加一个包时,它坚持要安装clangclang-13clangxx

有人有办法完全消除这些依赖吗?我认为这可能是指在线文件,而不是本地文件,因为我删除了所需的库。我运行了一个命令提示符:findstr /S /C:'clang' *,这就像从Linux调用grep一样。它显示了引用clang的所有文件。除了我已经删除的内容之外,其他地方都没有引用它,因此我感到困惑。

是的,我知道像conda这样的包管理器应该确保您的环境正常工作。但是,我可以将Python (模块)编译成C++,这些clang库完全没有问题。因为我的路径中已经有clang-12了。这比任何事情都麻烦,因为每个包安装/升级都希望安装不需要的clang-13库.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 00:36:11

虚拟包

更干净的解决方案是创建一个虚拟包,您可以将其安装为相应软件已经在系统上可用的指示符。这就是套餐。具体来说,它们提供了一个外部构建(参见食谱),可以安装该构建。

代码语言:javascript
复制
conda install 'mpich=*=external_*'

创建clang虚拟包

对于您想要的自定义配置,创建您自己的clangclangxx包的虚拟版本,以满足需求并将它们安装到环境中。有点像

meta.yaml

代码语言:javascript
复制
{% set version = "12.0.1" %}
{% set build = 0 %}

package:
  name: clang-dummies
  version: {{ version }}

build:
  number: {{ build }}

outputs:
  - name: clang
    string: external_{{ build }}
  - name: clangxx
    string: external_{{ build }}

about:
  license: GPL-3.0-only
  summary: Dummy package for external clang(xx) compiler.

在构建这个(conda build .)之后,您可以用

代码语言:javascript
复制
conda install --use-local 'clang=12=external*' 'clangxx=12=external*'

或者将它们上传到用户Anaconda频道。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71302220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档