Import conda-based environment with pip (requirements.txt) dependencies
Problem description
This feature request is related to issue #1410
Currently, it is possible to create a new Pixi environment based on a Conda YAML file:
pixi init --import environment.yml
This command works nicely if the environment contains both conda and pip dependencies, for instance:
name: test
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.12
- pip
- pandas
- matplotlib
- pip:
- watermark
However, it does not work if pip dependencies are in an external file, for example:
environment.yml
name: test
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.12
- pip
- pandas
- matplotlib
- pip:
- -r requirements.txt
requirements.txt
watermark
$ pixi init --import environment.yml
× Can't parse '-r requirements.txt' as pypi dependency
╰─▶ Expected package name starting with an alphanumeric character, found `-`
-r requirements.txt
^
Feature request: could we please import conda YAML file with pip dependencies listed in an external file?
This seems very useful indeed, thanks for reporting!
Added good first issue.
We already have requirement parsing in the code base so it's basically just reading the file if there is a -r requirements.txt and adding the requirements to the pypi-dependencies.
I'd like to work on this if that's ok.
@LiamConnors Please go ahead!
@ruben-arts I started looking at this and have a draft here https://github.com/prefix-dev/pixi/pull/2883
I wasn't 100% sure at which stage would be best to handle the dependencies within the external requirements.txt. I'd love your feedback. Is there an issue with parsing the external dependencies as if they were directly in the environment.yml file? and if so, and what stage instead do you think those external dependencies should be handled? Thanks for your help!
Roadmap for related work: https://github.com/prefix-dev/pixi/issues/4192