Skip to content

Boost dependency incompatible with pygmo #285

Closed
@larshinueber

Description

@larshinueber

When trying to install tudatpy and pygmo in the same conda environment (see environment.yaml below) the environment dependencies cannot be resolved due to a mismatch in the boost version.
In the past, this could be resolved by manually restricting the pygmo or explicitly giving a boost version, however this doesn't seem like a good solution in the long run, as a common use case of tudatpy is using it for any kind of optimization.

It seems that both tudat and pagmo are quite restrictive in their boost versions, allowing only a single minor version (press ℹ for pagmo and tudat). Is this something inherent to the build process or could this be relaxed?

environment.yaml

name: tudat-examples-0.9
channels:
  - conda-forge
  - tudat-team
dependencies:
  - tudatpy=0.9
  - numpy<2.0
  - pygmo

Terminal output

Channels:
 - conda-forge
 - tudat-team
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
Channels:
 - conda-forge
 - tudat-team
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package tudatpy-0.9.0-py39h8049b69_0 requires python_abi 3.9.* *_cp39, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ pygmo is installable with the potential options
│  ├─ pygmo [1.1.7|2.0|...|2.9] would require
│  │  └─ python_abi * *_cp27mu, which can be installed;
│  ├─ pygmo 1.1.7 would require
│  │  └─ python_abi * *_cp34m, which can be installed;
│  ├─ pygmo [1.1.7|2.0|...|2.9] would require
│  │  └─ python_abi * *_cp35m, which can be installed;
│  ├─ pygmo [1.1.7|2.0|...|2.9] would require
│  │  └─ python_abi * *_cp36m, which can be installed;
│  ├─ pygmo [2.10|2.11|...|2.9] would require
│  │  └─ python_abi * *_cp37m, which can be installed;
│  ├─ pygmo [2.11.4|2.12.0|2.13.0] would require
│  │  └─ python_abi * *_cp38, which can be installed;
│  ├─ pygmo [2.14.0|2.15.0|2.16.0] would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.14.0,<2.15.0a0 , which requires
│  │  │  └─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pygmo [2.14.0|2.15.0|2.16.0] would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.14.0,<2.15.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pygmo [2.14.0|2.15.0|2.16.0] would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.14.0,<2.15.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pygmo [2.16.0|2.16.1|2.18.0] would require
│  │  ├─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pygmo [2.16.0|2.16.1|2.18.0] would require
│  │  ├─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pygmo [2.16.0|2.16.1|2.18.0] would require
│  │  ├─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pygmo [2.16.0|2.16.1] would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
│  ├─ pygmo [2.16.0|2.16.1|2.18.0] would require
│  │  ├─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
│  ├─ pygmo 2.16.1 would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.16.1,<2.17.0a0  with the potential options
│  │  │  ├─ pagmo [2.14.0|2.16.1], which can be installed (as previously explained);
│  │  │  └─ pagmo 2.16.1 would require
│  │  │     └─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pygmo 2.16.1 would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.16.1,<2.17.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pygmo 2.16.1 would require
│  │  ├─ boost-cpp >=1.72.0,<1.72.1.0a0 , which can be installed;
│  │  ├─ pagmo >=2.16.1,<2.17.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pygmo [2.18.0|2.19.0|2.19.5] would require
│  │  └─ boost-cpp >=1.78.0,<1.78.1.0a0 , which can be installed;
│  ├─ pygmo 2.18.0 would require
│  │  ├─ boost-cpp >=1.74.0,<1.74.1.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
│  ├─ pygmo 2.19.5 would require
│  │  ├─ boost-cpp >=1.78.0,<1.78.1.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
│  ├─ pygmo [2.19.5|2.19.6] would require
│  │  ├─ libboost >=1.82.0,<1.83.0a0  with the potential options
│  │  │  ├─ libboost 1.82.0 would require
│  │  │  │  └─ icu >=73.1,<74.0a0 , which can be installed;
│  │  │  └─ libboost 1.82.0 would require
│  │  │     └─ boost-cpp 1.82.0* , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
│  ├─ pygmo [2.19.5|2.19.6] would require
│  │  └─ libboost >=1.82.0,<1.83.0a0 , which can be installed (as previously explained);
│  ├─ pygmo 2.19.5 would require
│  │  ├─ boost-cpp >=1.78.0,<1.78.1.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
│  ├─ pygmo 2.19.5 would require
│  │  ├─ libboost >=1.82.0,<1.83.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
│  ├─ pygmo [2.19.6|2.19.7] would require
│  │  └─ libboost >=1.84.0,<1.85.0a0 , which requires
│  │     └─ boost-cpp 1.84.0* , which can be installed;
│  ├─ pygmo 2.19.6 would require
│  │  ├─ libboost >=1.82.0,<1.83.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.12.* *_cp312, which can be installed;
│  ├─ pygmo [2.19.6|2.19.7] would require
│  │  ├─ libboost >=1.84.0,<1.85.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.12.* *_cp312, which can be installed;
│  ├─ pygmo 2.19.7 would require
│  │  └─ libboost >=1.86.0,<1.87.0a0 , which requires
│  │     └─ boost-cpp <0.0a0 , which can be installed;
│  ├─ pygmo 2.19.7 would require
│  │  ├─ libboost >=1.86.0,<1.87.0a0 , which can be installed (as previously explained);
│  │  └─ python_abi 3.12.* *_cp312, which can be installed;
│  └─ pygmo 2.19.7 would require
│     ├─ libboost >=1.86.0,<1.87.0a0 , which can be installed (as previously explained);
│     └─ python_abi 3.13.* *_cp313, which can be installed;
└─ tudatpy 0.9**  is not installable because there are no viable options
   ├─ tudatpy 0.9.0 would require
   │  ├─ python_abi 3.9.* *_cp39, which conflicts with any installable versions previously reported;
   │  └─ tudat >=2.14.0,<3.0a0 , which requires
   │     └─ boost-cpp >=1.85.0,<1.86.0a0  but there are no viable options
   │        ├─ boost-cpp 1.85.0 would require
   │        │  ├─ icu >=75.1,<76.0a0 , which conflicts with any installable versions previously reported;
   │        │  └─ libboost-devel 1.85.0 h00ab1b0_3, which requires
   │        │     └─ libboost 1.85.0 h0ccab89_3, which conflicts with any installable versions previously reported;
   │        ├─ boost-cpp 1.85.0 would require
   │        │  └─ icu >=75.1,<76.0a0 , which conflicts with any installable versions previously reported;
   │        ├─ boost-cpp 1.85.0 would require
   │        │  └─ libboost-devel 1.85.0 h00ab1b0_0, which requires
   │        │     └─ libboost 1.85.0 hba137d9_0, which conflicts with any installable versions previously reported;
   │        ├─ boost-cpp 1.85.0 would require
   │        │  └─ libboost-devel 1.85.0 h00ab1b0_1, which requires
   │        │     └─ libboost 1.85.0 hba137d9_1, which conflicts with any installable versions previously reported;
   │        └─ boost-cpp 1.85.0 would require
   │           └─ libboost-devel 1.85.0 h00ab1b0_2, which requires
   │              └─ libboost 1.85.0 hba137d9_2, which conflicts with any installable versions previously reported;
   ├─ tudatpy 0.9.0 would require
   │  ├─ python_abi 3.10.* *_cp310, which conflicts with any installable versions previously reported;
   │  └─ tudat >=2.14.0,<3.0a0 , which cannot be installed (as previously explained);
   └─ tudatpy 0.9.0 would require
      ├─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported;
      └─ tudat >=2.14.0,<3.0a0 , which cannot be installed (as previously explained).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions