Why Import Environments?
You may have existing projects using:- Conda
environment.ymlfiles - Pip
requirements.txtfiles - Poetry or other dependency managers
Before You Start
Ensure you have a Pixi workspace. If not, create one:If you’re starting from scratch, you can combine
pixi init and pixi import into one command - see pixi init —import below.Importing Conda Environments
Import condaenvironment.yml files into your workspace.
Basic Import
name: data-science
channels: ["conda-forge"]
dependencies:
- python=3.11
- numpy
- pandas
- matplotlib
- pip:
- httpx
- requests
name field)[feature.data-science.dependencies][feature.data-science.pypi-dependencies][feature.data-science]
channels = ["conda-forge"]
[feature.data-science.dependencies]
python = "3.11.*"
numpy = "*"
pandas = "*"
matplotlib = "*"
[feature.data-science.pypi-dependencies]
httpx = "*"
requests = "*"
[environments]
data-science = { features = ["data-science"], no-default-feature = true }
Import Options
Customize the import with options:- Custom Feature Name
- Custom Environment Name
- Specific Platforms
Import into a feature with a different name:Result:
Merge into Existing Environments
Import into an existing environment:[feature.base]
channels = ["conda-forge"]
[feature.base.dependencies]
python = "*"
[feature.base.pypi-dependencies]
httpx = "*"
[feature.numpy-tools]
channels = ["conda-forge"]
[feature.numpy-tools.dependencies]
numpy = "*"
pandas = "*"
[environments]
base = { features = ["base", "numpy-tools"], no-default-feature = true }
Import into Default Environment
Import dependencies into the default environment:[dependencies] section.
Importing PyPI Requirements
Import piprequirements.txt files.
Basic Import
[feature.python-tools.pypi-dependencies]
cowpy = "*"
array-api-extra = ">=0.8"
requests = "==2.31.0"
httpx = "~=0.24.0"
[environments]
python-tools = { features = ["python-tools"], no-default-feature = true }
Advanced Requirements
Pixi supports various requirement formats:Multiple Requirements Files
Import multiple files into the same environment:Combining Init and Import
Combine workspace creation and import in one command:Import Conda Environment
Create a workspace from an environment.yml:Override Workspace Name
Specify a custom workspace name:At the time of writing,
pixi init --import only supports the conda-env format, not pypi-txt.Automatic Format Detection
Pixi can detect the format automatically:Real-World Examples
Migrate a Data Science Project
# environment.yml
name: ml-project
channels:
- conda-forge
- pytorch
dependencies:
- python=3.11
- pytorch
- torchvision
- numpy
- pandas
- matplotlib
- jupyter
- pip:
- transformers
- datasets
pixi add --feature dev ruff mypy pytest
pixi workspace environment add dev --feature ml-project --feature dev
Migrate a Web Application
# requirements.txt
flask==3.0.0
sqlalchemy==2.0.25
celery==5.3.4
redis==5.0.1
python-dotenv==1.0.0
gunicorn==21.2.0
pixi init web-app
pixi import --format pypi-txt --feature app requirements.txt
pixi import --format pypi-txt --feature dev requirements-dev.txt
pixi workspace environment add production --feature app --no-default-feature
pixi workspace environment add dev --feature app --feature dev --no-default-feature
[feature.app.pypi-dependencies]
flask = "==3.0.0"
sqlalchemy = "==2.0.25"
celery = "==5.3.4"
redis = "==5.0.1"
python-dotenv = "==1.0.0"
gunicorn = "==21.2.0"
[feature.dev.pypi-dependencies]
pytest = "==8.0.0"
pytest-cov = "==4.1.0"
ruff = "==0.1.0"
black = "==23.12.0"
[environments]
production = { features = ["app"], no-default-feature = true }
dev = { features = ["app", "dev"], no-default-feature = true }
Import from Poetry
While Pixi doesn’t directly importpyproject.toml from Poetry, you can export and import:
Post-Import Tasks
After importing, you may want to:Add Tasks
Define common commands:Add More Dependencies
Create Additional Environments
Update Lock File
Troubleshooting
Import Format Not Detected
Specify the format explicitly:Feature Name Required
For PyPI imports, always specify a feature or environment:Platform-Specific Dependencies
Some dependencies may not be available on all platforms. Use platform-specific imports:Version Conflicts
If you encounter conflicts after import:- Check the lock file:
pixi lock - Update specific packages:
pixi update package-name - Adjust version constraints in
pixi.toml
Best Practices
Next Steps
- Learn about multi-environment workspaces
- Explore Python development with Pixi
- Understand pyproject.toml integration
Future Improvements
Pixi’s import capabilities are actively being developed:- Import roadmap issue on GitHub - Track planned enhancements
- Poetry and PDM integration improvements in progress