在 NixOS 中,如何解决冲突?

In NixOS, how can I resolve a collision?

我正在尝试使用 Python 设置开发环境,包括 Python 库 Spacy 和 Pandas。我尝试 运行 的命令是 nix-shell -p 'python36.withPackages(ps: with ps; [ spacy pandas ])'

但事情是这样的:

these derivations will be built:
  /nix/store/7pgb52aa5hkgzv0mkc3jmxdhavxdr013-python3-3.6.6-env.drv
building '/nix/store/7pgb52aa5hkgzv0mkc3jmxdhavxdr013-python3-3.6.6-env.drv'...
collision between `/nix/store/k1njxvw8rdv29yz7iccr4nbfwcbghwhc-python3.6-msgpack-0.5.6/lib/python3.6/site-packages/msgpack/__pycache__/__init__.cpython-36.pyc' and `/nix/store/nig71x1wc7b3c04hs6vz8kk6bmdz5ldv-python3.6-msgpack-python-0.5.6/lib/python3.6/site-packages/msgpack/__pycache__/__init__.cpython-36.pyc'

这是怎么回事,我该如何解决?

msgpack-python 已重命名为 msgpack,但这两个软件包都存在于 Nixpkgs 的 release-18.09 中。这似乎是 master 上的 fixed,这些修复应该被移植到 18.09。确实存在此类问题的解决方法:

(python36.withPackages(ps: with ps; [ spacy pandas ])).override (args: { ignoreCollisions = true; })

这实际上不是 NixOS 的问题,而是 Nixpkgs 的问题。

请注意,您只能安装 一个环境,这是导致冲突错误的另一个常见原因。这不是这里的问题。

I have created an issue