Search code examples
anacondacondaanaconda3pyocd

Unable to install pyocd in latest version of Anaconda


I'm trying to set up our usual Anaconda development environment on a new Windows 10 PC. I downloaded the latest version of Anaconda last week (version 2023.09, I believe), and I'm having trouble installing pyocd. pyocd installed easily on all the other PCs several months ago.

I ran conda using Anaconda Powershell Prompt in administrator mode. Here's what conda returns:

(base) PS C:\WINDOWS\system32> conda install -c conda-forge pyocd
>> Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: \

Found conflicts! Looking for incompatible packages.

This can take several minutes.  Press CTRL-C to abort. failed                                                                                                               /

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

The error messages are pretty unhelpful - I'd try installing downrev packages, but I don't know which ones to downgrade. Any ideas what's going on?

UPDATE I updated conda, and now it actually gives me actionable error messages:

(base) PS C:\WINDOWS\system32> conda install -c conda-forge pyocd
>> Channels:
 - conda-forge
 - defaults
 - anaconda Platform: win-64 
Collecting package metadata (repodata.json): done 
Solving environment: | warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package pyocd-0.34.0-pyhd8ed1ab_0 requires cmsis-pack-manager >=0.4.0,<1.0, but none of the providers can be installed

Could not solve for environment specs  The following packages are incompatible 
├─ pin-1 is installable and it requires  
│  └─ python 3.11.* , which can be installed; 
└─ pyocd is not installable because it requires 
   └─ cmsis-pack-manager >=0.4.0,<1.0  but there are no viable options
      ├─ cmsis-pack-manager 0.4.0 would require
      │  └─ python >=3.10,<3.11.0a0 , which conflicts with any installable versions previously reported;
      ├─ cmsis-pack-manager 0.4.0 would require
      │  └─ python >=3.7,<3.8.0a0 , which conflicts with any installable versions previously reported;
      ├─ cmsis-pack-manager 0.4.0 would require
      │  └─ python >=3.8,<3.9.0a0 , which conflicts with any installable versions previously reported;
      └─ cmsis-pack-manager 0.4.0 would require
         └─ python >=3.9,<3.10.0a0 , which conflicts with any installable versions previously reported.

Pins seem to be involved in the conflict. Currently pinned specs:
 - python 3.11.* (labeled as 'pin-1')

I'm a python/anaconda noob, so I don't know what to do with this info (yet), but I'm continuing to work on it.


Solution

  • Dependency unavailable for Python 3.11 or later

    Although the pyocd package is technically noarch (i.e., independent of Python version), it depends on cmsis-pack-manager, which has failed to be rebuilt for Python 3.11+. It would be encouraging to maintainers to comment on that Pull Request to voice your desire that this be built. Or if, you have insight into why it fails, contribute a PR.

    Otherwise, you'll need to instead install the package in a Python 3.10 or earlier environment. For example,

    conda create -n py310 -c conda-forge python=3.10 pyocd