Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boost dependency incompatible with pygmo #285

Open
larshinueber opened this issue Feb 3, 2025 · 1 comment
Open

Boost dependency incompatible with pygmo #285

larshinueber opened this issue Feb 3, 2025 · 1 comment

Comments

@larshinueber
Copy link

larshinueber commented Feb 3, 2025

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).

@DominicDirkx
Copy link
Member

Indeed, it seems that for both packages the boost version is fixed. I'll see if we can let out boost version float. I remember our previoius build system had an issue with this, but let's see if this is now better :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants