Custom channel issue conda

29 views
Skip to first unread message

James Smith

unread,
Sep 27, 2021, 6:16:12 AM9/27/21
to conda - Public

Hi,

I’m trying to create a local conda channel with conda-build. Based on a conda list --explicit I’ve retrieved the used packages and with these files I’ve setup the local channel using the index command.

I have an .yml file, where only the local channel is specified. The local channel seems to be used for almost all packages, except for one. Result of conda list --show-channel-urls:

  - […]
  - file:///[channel_path]/noarch::fsspec==2021.8.1=pyhd3eb1b0_0
  - file:///[channel_path]/noarch::heapdict==1.0.1=pyhd3eb1b0_0
  - defaults/win-64::libtiff==4.2.0=hd0e1b90_0
  - file:///[channel_path]/win-64::locket==0.2.1=py38haa95532_1
  - […] 

The ‘libtiff’ package is in the custom channel (same version, same hash), but it is somehow retrieved from the defaults (which is not a specified channel in the .yml).

The dependency which is trying to install ‘libtiff’ is ‘dask=2021.8.1’. If I append – nodefaults in the .yml file the environment doesn’t solve anymore (a large number of conflicts is identified then, which I do not fully understand, as the custom channel should contain all dependencies).

Questions:

  1. How can I make sure that my environment is using the custom / local channel for all packages?
  2. Why can my sample environment with only the one dependency (dask) cannot be build without the defaults, even if the custom channel should satisfy all dependencies?

Any advice / answer is much appreciated.

Further environment info: 

- conda version : 4.10.3
- conda-build version : 3.21.5
- python version : 3.9.5.final.0
- platform : win-64
- user-agent : conda/4.10.3 requests/2.26.0 CPython/3.9.5 Windows/10 Windows/10.0.18363

Regards,

James

James Smith

unread,
Oct 4, 2021, 10:35:35 AM10/4/21
to conda - Public, James Smith
For anyone experiencing this issue, some follow-up.

I've eventually found the root cause why 'libtiff' could not be retrieved from the custom channel. This had to do we the lack of transitive dependency 'zstd-1.4.5'. There was another version already in the channel, 'zstd-1.4.9', but this was not used by 'libtiff-4.2.0'. I'm not sure why my earlier conda list --explicit command not resulted in the correct version. I've figured it out by creating an environment with only the 'libtiff' dependency and by (manually) comparing the package versions, probably there is a much easier (automated) approach for this.

After adding the correct version of 'zstd' to the channel, all was well. The environment was fully installed from the channel. Also it made sense that I got all kinds of conflicts when I was trying to install from the custom channel with the --nodefault option, as multiple of the dependencies are using 'libtiff' and each one was not able to retrieve the correct version of 'zstd'.

So for me the main problem is solved, but one question is remaining: why does conda list --explicit appear to not give all dependencies.

Regards,

James

Reply all
Reply to author
Forward
0 new messages