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

Different operating systems are not compatible #54

Open
mht2953658596 opened this issue Aug 2, 2024 · 2 comments
Open

Different operating systems are not compatible #54

mht2953658596 opened this issue Aug 2, 2024 · 2 comments

Comments

@mht2953658596
Copy link

Exporting a virtual environment's yaml with micromamba on Windows cannot be used directly on Linux.

@mht2953658596
Copy link
Author

Exporting a virtual environment's yaml with micromamba on Windows cannot be used directly on Linux.

Why can't the YAML files generated on Windows be used directly on Linux? Even if you remove the "build" information and only keep the library names and version numbers, some dependencies still fail to download, indicating that these libraries are not found.

@luciorq
Copy link

luciorq commented Sep 17, 2024

Some Linux or MacOS-specific libraries simply don't exist on Windows; you can't replicate the whole dependency tree on different OS. Even between MacOS and Linux, many dependencies are shared, but not all.

But you probably don't need or want to replicate the full dependency tree of your project.

If you praise portability, it is safer to annotate what your actual top-level dependencies are and leave micromamba to find the right sub-dependencies.

For instance, the most basic example, an environment that just have Python version 3.12 installed will use different dependencies between OS flavors:

Windows

micromamba repoquery -c nodefaults -c conda-forge --platform win-64 depends python==3.12.5

Output:

Getting repodata from channels...

conda-forge/win-64                                          Using cache
conda-forge/noarch                                          Using cache
 Name         Version      Build                Channel     Subdir
───────────────────────────────────────────────────────────────────
 bzip2        1.0.8        hcfcfb64_5           conda-forge win-64
 libexpat     2.6.3        he0c23c2_0           conda-forge win-64
 libffi       3.4.2        h8ffe710_5           conda-forge win-64
 libsqlite    3.46.1       h2466b09_0           conda-forge win-64
 libzlib      1.3.1        hcfcfb64_0           conda-forge win-64
 openssl      3.3.2        h2466b09_0           conda-forge win-64
 pip          10.0.1       py27_0               conda-forge win-64
 python       3.12.5       h889d299_0_cpython   conda-forge win-64
 tk           8.6.13       hcfcfb64_0           conda-forge win-64
 tzdata       2020a        h516909a_0           conda-forge noarch
 ucrt         10.0.22621.0 h57928b3_0           conda-forge win-64
 vc           14.3         hcf57466_20          conda-forge win-64
 vc14_runtime 14.40.33810  hcc2c482_21          conda-forge win-64
 xz           5.2.6        h8d14728_0           conda-forge win-64

Linux

micromamba repoquery -c nodefaults -c conda-forge --platform linux-64 depends python==3.12.5

Output:

Getting repodata from channels...

conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache
 Name                      Version Build                Channel     Subdir  
─────────────────────────────────────────────────────────────────────────────
 __glibc >>> NOT FOUND <<<                              localhost           
 bzip2                     1.0.8   hd590300_5           conda-forge linux-64
 ld_impl_linux-64          2.40    hf3520f5_7           conda-forge linux-64
 libexpat                  2.6.3   h5888daf_0           conda-forge linux-64
 libffi                    3.4.2   h9c3ff4c_4           conda-forge linux-64
 libgcc-ng                 14.1.0  h77fa898_0           conda-forge linux-64
 libnsl                    2.0.1   hd590300_0           conda-forge linux-64
 libsqlite                 3.46.1  hadc24fc_0           conda-forge linux-64
 libuuid                   2.38.1  h0b41bf4_0           conda-forge linux-64
 libxcrypt                 4.4.36  hd590300_1           conda-forge linux-64
 libzlib                   1.3.1   hd590300_0           conda-forge linux-64
 ncurses                   6.5     he02047a_1           conda-forge linux-64
 openssl                   3.3.2   hb9d3cd8_0           conda-forge linux-64
 pip                       10.0.1  py27_0               conda-forge linux-64
 python                    3.12.5  h2ad013b_0_cpython   conda-forge linux-64
 readline                  8.2     h8228510_1           conda-forge linux-64
 tk                        8.6.13  xft_h2e05e87_1       conda-forge linux-64
 tzdata                    2020a   h516909a_0           conda-forge noarch  
 xz                        5.2.6   h166bdaf_0           conda-forge linux-64

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

No branches or pull requests

2 participants