pavelzw / pixi-pycharm

Conda shim for PyCharm that proxies pixi
https://pixi.sh/dev/ide_integration/pycharm
BSD 3-Clause "New" or "Revised" License
20 stars 1 forks source link
conda pixi pycharm

[![License][license-badge]][license] [![CI][ci-badge]][ci] [![Latest release][latest-release-badge]][releases] [![conda-forge](https://img.shields.io/conda/pn/conda-forge/pixi-pycharm?logoColor=white&logo=conda-forge&style=flat-square)](https://prefix.dev/channels/conda-forge/packages/pixi-pycharm) [![Project Chat][chat-badge]][chat-url] [![Pixi Badge][pixi-badge]][pixi] [license-badge]: https://img.shields.io/github/license/pavelzw/pixi-pycharm?style=flat-square [license]: ./LICENSE [ci-badge]: https://img.shields.io/github/actions/workflow/status/pavelzw/pixi-pycharm/ci.yml?style=flat-square [ci]: https://github.com/pavelzw/pixi-pycharm/actions/ [latest-release-badge]: https://img.shields.io/github/v/tag/pavelzw/pixi-pycharm?style=flat-square&label=latest&sort=semver [releases]: https://github.com/pavelzw/pixi-pycharm/releases [chat-badge]: https://img.shields.io/discord/1082332781146800168.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2&style=flat-square [chat-url]: https://discord.gg/kKV8ZxyzY4 [pixi-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/prefix-dev/pixi/main/assets/badge/v0.json&style=flat-square [pixi]: https://pixi.sh

pixi-pycharm

Add pixi support to PyCharm.

How to use

To get started, add pixi-pycharm to your pixi project.

pixi add pixi-pycharm

This will ensure that the conda shim is installed in your project's environment.

Having pixi-pycharm installed, you can now configure PyCharm to use your pixi environments. Go to the Add Python Interpreter dialog (bottom right corner of the PyCharm window) and select Conda Environment. Set Conda Executable to the full path of the conda file (on Windows: conda.bat) which is located in .pixi/envs/default/libexec. You can get the path using the following command:

# on Linux/macOS
pixi run 'echo $CONDA_PREFIX/libexec/conda'
# on Windows
pixi run 'echo $CONDA_PREFIX\\libexec\\conda.bat'

This is an executable that tricks PyCharm into thinking it's the proper conda executable. Under the hood it redirects all calls to the corresponding pixi equivalent.

[!WARNING] Please make sure that this is the conda shim from this pixi project and not another one. If you use multiple pixi projects, you might have to adjust the path accordingly as PyCharm remembers the path to the conda executable.

Add Python Interpreter Add Python Interpreter

Having selected the environment, PyCharm will now use the Python interpreter from your pixi environment.

PyCharm should now be able to show you the installed packages as well.

PyCharm package list PyCharm package list

You can now run your programs and tests as usual.

PyCharm run tests PyCharm run tests

[!TIP] In order for PyCharm to not get confused about the .pixi directory, please mark it as excluded.

Mark Directory as excluded 1 Mark Directory as excluded 1 Mark Directory as excluded 2 Mark Directory as excluded 2

Also, when using a remote interpreter, you should exclude the .pixi directory on the remote machine. Instead, you should run pixi install on the remote machine and select the conda shim from there. Deployment exclude from remote machine Deployment exclude from remote machine

Multiple environments

If your project uses multiple environments to tests different Python versions or dependencies, you can add multiple environments to PyCharm by specifying Use existing environment in the Add Python Interpreter dialog.

Multiple pixi environments Multiple pixi environments

You can then specify the corresponding environment in the bottom right corner of the PyCharm window.

Specify environment Specify environment

Multiple pixi projects

When using multiple pixi projects, remember to select the correct Conda Executable for each project as mentioned above. It also might come up that you have multiple environments it might come up that you have multiple environments with the same name.

Multiple default environments Multiple default environments

It is recommended to rename the environments to something unique.

Debugging

Logs are written to ~/.cache/pixi-pycharm.log. You can use them to debug problems. Please attach the logs when filing a bug report.