How to create a Conda environment for another platform

A platform-targeted Conda environment keeps package resolution aligned with the machine that will run the project, not the machine where the solve is performed. On Apple Silicon, ARM Linux, CI builders, or packaging workstations, the native platform may differ from the target architecture, and an ordinary environment can resolve the wrong package builds.

conda create --platform writes a target subdir such as linux-64, osx-64, or win-64 into the new environment's configuration. Conda uses that stored subdir for later package operations against the same environment, so follow-up installs solve against the target platform without passing --platform again.

Use this only when the target binaries make sense for the host or when the environment is being prepared for export, lockfiles, emulation, or another machine. Conda warns that cross-OS targets can fail outside dry-run workflows because virtual packages, filesystem behavior, and executable formats may not match the host.

Steps to create a Conda environment for another platform:

  1. Check the platform Conda normally targets on this host.
    $ conda info
         active environment : None
    ##### snipped #####
                   platform : linux-aarch64
    ##### snipped #####
  2. Create a new environment with the target platform.
    $ conda create --name linux64-tools --platform linux-64 --override-channels --channel conda-forge python=3.12 --yes
    Channels:
     - conda-forge
    Platform: linux-64
    Collecting package metadata (repodata.json): done
    Solving environment: done
    
    ## Package Plan ##
    
      environment location: /opt/conda/envs/linux64-tools
    
      added / updated specs:
        - python=3.12
    
    The following NEW packages will be INSTALLED:
    
      python             conda-forge/linux-64::python-3.12.13-hd63d673_0_cpython
    ##### snipped #####
    Preparing transaction: done
    Verifying transaction: done
    Executing transaction: done

    Replace linux-64 with the target Conda platform, such as osx-64 for Intel macOS packages or win-64 for 64-bit Windows packages. The --platform flag applies only when the environment is created.

  3. Confirm the target platform saved into the environment configuration.
    $ conda config --show subdir --name linux64-tools
    subdir: linux-64
  4. Check the installed Python build inside the target-platform environment.
    $ conda list --name linux64-tools python
    # packages in environment at /opt/conda/envs/linux64-tools:
    #
    # Name                     Version          Build               Channel
    python                     3.12.13          hd63d673_0_cpython  conda-forge

    Package records show the resolved build, but running target-platform binaries still depends on host support or emulation.

  5. Verify that later package operations remember the target platform.
    $ conda install --name linux64-tools --dry-run --override-channels --channel conda-forge pip
    Channels:
     - conda-forge
    Platform: linux-64
    Collecting package metadata (repodata.json): done
    Solving environment: done
    
    DryRunExit: Dry run. Exiting.
    
    ## Package Plan ##
    
      environment location: /opt/conda/envs/linux64-tools
    
      added / updated specs:
        - pip

    The command does not pass --platform. The Platform: linux-64 line confirms Conda reused the environment's stored subdir.

  6. List the explicit records when the solved package set will be reused on the target machine.
    $ conda list --explicit --name linux64-tools
    # This file may be used to create an environment using:
    # $ conda create --name <env> --file <this file>
    # platform: linux-64
    # created-by: conda 26.3.2
    @EXPLICIT
    https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda
    https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda
    ##### snipped #####
    https://conda.anaconda.org/conda-forge/linux-64/python-3.12.13-hd63d673_0_cpython.conda