home.social

#pixi — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pixi, aggregated by home.social.

  1. My day job is all about #Python (which I love). Here are some personal rules, specific to working with Python projects:

    * Do **not** install or modify global tools, especially Python itself or any packages. This means a given system might not even **have** a global Python
    * Always use virtual environments (`uv` agrees with me, and doesn't need this but). I always set the global environment variable `PIP_REQUIRE_VIRTUALENV`.
    * The two rules above mean my virtual environment contains (not via a link, it's really there) Python itself (and of course, of the right version)
    * Virtual environments always live **inside** a project directory. Never global.
    * Activate virtual environments only **inside** the project directory (`direnv` #direnv makes this easy)
    * Don't install (let alone use) #Anaconda, #Miniconda, or #Mamba, because those violate all the rules above (but see the next rule)
    * Anaconda-based packages implies a `pixi` #Pixi project (it's the same people, but a better answer, and you still get what you want -- the correct packages)
    * No Anaconda-based packages implies a `uv` #UV project
    * Always use `pyproject.toml` #pyprojecttoml over any other config file (e.g., `requirements.txt` #requirementstxt), except where things just don't work, such as needing `pyrefly.toml`
    * `uv`, `pixi`, and `direnv` must exist outside of any project, so install them at the user level, or else globally if and only if that is appropriate and compelling enough to override rule one

    That was a wall of text, but in practice doing it this way is trivial. It's probably **less** work than you have been doing. This post is just about managing your Python versions, environments, and projects. Not about, e.g., using `pre-commit` #precommit, or doing type checking, etc. But if you follow these rules, your work will be easier, faster, more adaptable, and encounter fewer obstacles.

    #HowTo

  2. My day job is all about #Python (which I love). Here are some personal rules, specific to working with Python projects:

    * Do **not** install or modify global tools, especially Python itself or any packages. This means a given system might not even **have** a global Python
    * Always use virtual environments (`uv` agrees with me, and doesn't need this but). I always set the global environment variable `PIP_REQUIRE_VIRTUALENV`.
    * The two rules above mean my virtual environment contains (not via a link, it's really there) Python itself (and of course, of the right version)
    * Virtual environments always live **inside** a project directory. Never global.
    * Activate virtual environments only **inside** the project directory (`direnv` #direnv makes this easy)
    * Don't install (let alone use) #Anaconda, #Miniconda, or #Mamba, because those violate all the rules above (but see the next rule)
    * Anaconda-based packages implies a `pixi` #Pixi project (it's the same people, but a better answer, and you still get what you want -- the correct packages)
    * No Anaconda-based packages implies a `uv` #UV project
    * Always use `pyproject.toml` #pyprojecttoml over any other config file (e.g., `requirements.txt` #requirementstxt), except where things just don't work, such as needing `pyrefly.toml`
    * `uv`, `pixi`, and `direnv` must exist outside of any project, so install them at the user level, or else globally if and only if that is appropriate and compelling enough to override rule one

    That was a wall of text, but in practice doing it this way is trivial. It's probably **less** work than you have been doing. This post is just about managing your Python versions, environments, and projects. Not about, e.g., using `pre-commit` #precommit, or doing type checking, etc. But if you follow these rules, your work will be easier, faster, more adaptable, and encounter fewer obstacles.

    #HowTo

  3. My day job is all about (which I love). Here are some personal rules, specific to working with Python projects:

    * Do **not** install or modify global tools, especially Python itself or any packages. This means a given system might not even **have** a global Python
    * Always use virtual environments (`uv` agrees with me, and doesn't need this but). I always set the global environment variable `PIP_REQUIRE_VIRTUALENV`.
    * The two rules above mean my virtual environment contains (not via a link, it's really there) Python itself (and of course, of the right version)
    * Virtual environments always live **inside** a project directory. Never global.
    * Activate virtual environments only **inside** the project directory (`direnv` makes this easy)
    * Don't install (let alone use) , , or , because those violate all the rules above (but see the next rule)
    * Anaconda-based packages implies a `pixi` project (it's the same people, but a better answer, and you still get what you want -- the correct packages)
    * No Anaconda-based packages implies a `uv` project
    * Always use `pyproject.toml` over any other config file (e.g., `requirements.txt` ), except where things just don't work, such as needing `pyrefly.toml`
    * `uv`, `pixi`, and `direnv` must exist outside of any project, so install them at the user level, or else globally if and only if that is appropriate and compelling enough to override rule one

    That was a wall of text, but in practice doing it this way is trivial. It's probably **less** work than you have been doing. This post is just about managing your Python versions, environments, and projects. Not about, e.g., using `pre-commit` , or doing type checking, etc. But if you follow these rules, your work will be easier, faster, more adaptable, and encounter fewer obstacles.

  4. My day job is all about #Python (which I love). Here are some personal rules, specific to working with Python projects:

    * Do **not** install or modify global tools, especially Python itself or any packages. This means a given system might not even **have** a global Python
    * Always use virtual environments (`uv` agrees with me, and doesn't need this but). I always set the global environment variable `PIP_REQUIRE_VIRTUALENV`.
    * The two rules above mean my virtual environment contains (not via a link, it's really there) Python itself (and of course, of the right version)
    * Virtual environments always live **inside** a project directory. Never global.
    * Activate virtual environments only **inside** the project directory (`direnv` #direnv makes this easy)
    * Don't install (let alone use) #Anaconda, #Miniconda, or #Mamba, because those violate all the rules above (but see the next rule)
    * Anaconda-based packages implies a `pixi` #Pixi project (it's the same people, but a better answer, and you still get what you want -- the correct packages)
    * No Anaconda-based packages implies a `uv` #UV project
    * Always use `pyproject.toml` #pyprojecttoml over any other config file (e.g., `requirements.txt` #requirementstxt), except where things just don't work, such as needing `pyrefly.toml`
    * `uv`, `pixi`, and `direnv` must exist outside of any project, so install them at the user level, or else globally if and only if that is appropriate and compelling enough to override rule one

    That was a wall of text, but in practice doing it this way is trivial. It's probably **less** work than you have been doing. This post is just about managing your Python versions, environments, and projects. Not about, e.g., using `pre-commit` #precommit, or doing type checking, etc. But if you follow these rules, your work will be easier, faster, more adaptable, and encounter fewer obstacles.

    #HowTo

  5. My day job is all about #Python (which I love). Here are some personal rules, specific to working with Python projects:

    * Do **not** install or modify global tools, especially Python itself or any packages. This means a given system might not even **have** a global Python
    * Always use virtual environments (`uv` agrees with me, and doesn't need this but). I always set the global environment variable `PIP_REQUIRE_VIRTUALENV`.
    * The two rules above mean my virtual environment contains (not via a link, it's really there) Python itself (and of course, of the right version)
    * Virtual environments always live **inside** a project directory. Never global.
    * Activate virtual environments only **inside** the project directory (`direnv` #direnv makes this easy)
    * Don't install (let alone use) #Anaconda, #Miniconda, or #Mamba, because those violate all the rules above (but see the next rule)
    * Anaconda-based packages implies a `pixi` #Pixi project (it's the same people, but a better answer, and you still get what you want -- the correct packages)
    * No Anaconda-based packages implies a `uv` #UV project
    * Always use `pyproject.toml` #pyprojecttoml over any other config file (e.g., `requirements.txt #requirementstxt), except where things just don't work, such as needing `pyrefly.toml`
    * `uv`, `pixi`, and `direnv` must exist outside of any project, so install them at the user level, or else globally if and only if that is appropriate and compelling enough to override rule one

    That was a wall of text, but in practice doing it this way is trivial. It's probably **less** work than you have been doing. This post is just about managing your Python versions, environments, and projects. Not about, e.g., using `pre-commit` #precommit, or doing type checking, etc. But if you follow these rules, your work will be easier, faster, more adaptable, and encounter fewer obstacles.

    #HotTo

  6. My first article for Towards Data Science!

    How sharded repodata (CEP-16) makes conda and Pixi 10x faster with 90% less bandwidth on conda-forge.

    Thanks to Bas Zalmstra, @dholth, and the teams at @prefix, Anaconda, and Quansight.
    towardsdatascience.com/why-pac

  7. My first article for Towards Data Science!

    How sharded repodata (CEP-16) makes conda and Pixi 10x faster with 90% less bandwidth on conda-forge.

    Thanks to Bas Zalmstra, @dholth, and the teams at @prefix, Anaconda, and Quansight.
    towardsdatascience.com/why-pac

    #PackageManagement #OpenSource #Python #Conda #Pixi #DataScience

  8. The more I learn about #Direnv, the happier I become. It **already** works with #Pixi. It **already** helps you with secrets (ignore `.envrc` in your `.gitignore` or equivalent). I grabbed a `layout_uv` from the direnv wiki (made some small modifications), and it works basically everywhere I want it.

    If you're not using using `direnv` yet, you are doing yourself a disservice.

  9. The more I learn about #Direnv, the happier I become. It **already** works with #Pixi. It **already** helps you with secrets (ignore `.envrc` in your `.gitignore` or equivalent). I grabbed a `layout_uv` from the direnv wiki (made some small modifications), and it works basically everywhere I want it.

    If you're not using using `direnv` yet, you are doing yourself a disservice.

  10. The more I learn about , the happier I become. It **already** works with . It **already** helps you with secrets (ignore `.envrc` in your `.gitignore` or equivalent). I grabbed a `layout_uv` from the direnv wiki (made some small modifications), and it works basically everywhere I want it.

    If you're not using using `direnv` yet, you are doing yourself a disservice.

  11. The more I learn about #Direnv, the happier I become. It **already** works with #Pixi. It **already** helps you with secrets (ignore `.envrc` in your `.gitignore` or equivalent). I grabbed a `layout_uv` from the direnv wiki (made some small modifications), and it works basically everywhere I want it.

    If you're not using using `direnv` yet, you are doing yourself a disservice.

  12. Here’s your regular #CommandLine #PSA: #Starship helps you every time you hit return, in every shell. #Atuin makes history 10x more useful. #Direnv is becoming my friend but I need to understand better how to use it, and it needs additions to work in more situations.(e.g., #uv layout, #pixi layout, better path handling in #GitBashForWindows)

  13. Here’s your regular #CommandLine #PSA: #Starship helps you every time you hit return, in every shell. #Atuin makes history 10x more useful. #Direnv is becoming my friend but I need to understand better how to use it, and it needs additions to work in more situations.(e.g., #uv layout, #pixi layout, better path handling in #GitBashForWindows)

  14. Here’s your regular : helps you every time you hit return, in every shell. makes history 10x more useful. is becoming my friend but I need to understand better how to use it, and it needs additions to work in more situations.(e.g., layout, layout, better path handling in )

  15. Here’s your regular #CommandLine #PSA: #Starship helps you every time you hit return, in every shell. #Atuin makes history 10x more useful. #Direnv is becoming my friend but I need to understand better how to use it, and it needs additions to work in more situations.(e.g., #uv layout, #pixi layout, better path handling in #GitBashForWindows)

  16. I am really enjoying the Pixi package manager, pixi.sh , made by @prefix. We have been using conda at my work for managing the dependencies of our python application. It involves scientific data analysis so there are lots of dependencies, and it has been a challenge to keep things up to date. Pixi has nice support for cleanly defining the direct dependencies in the pixi.toml file, and then it automatically generates a lock file. There is a command to upgrade all the dependencies too. It's amazing! I'm just starting to use it, but it is helpful so far.

    #conda
    #packageManagement
    #pixi
    #dependencyManagement

  17. I am really enjoying the Pixi package manager, pixi.sh , made by @prefix. We have been using conda at my work for managing the dependencies of our python application. It involves scientific data analysis so there are lots of dependencies, and it has been a challenge to keep things up to date. Pixi has nice support for cleanly defining the direct dependencies in the pixi.toml file, and then it automatically generates a lock file. There is a command to upgrade all the dependencies too. It's amazing! I'm just starting to use it, but it is helpful so far.

    #conda
    #packageManagement
    #pixi
    #dependencyManagement

  18. I am really enjoying the Pixi package manager, pixi.sh , made by @prefix. We have been using conda at my work for managing the dependencies of our python application. It involves scientific data analysis so there are lots of dependencies, and it has been a challenge to keep things up to date. Pixi has nice support for cleanly defining the direct dependencies in the pixi.toml file, and then it automatically generates a lock file. There is a command to upgrade all the dependencies too. It's amazing! I'm just starting to use it, but it is helpful so far.

    #conda
    #packageManagement
    #pixi
    #dependencyManagement

  19. I am really enjoying the Pixi package manager, pixi.sh , made by @prefix. We have been using conda at my work for managing the dependencies of our python application. It involves scientific data analysis so there are lots of dependencies, and it has been a challenge to keep things up to date. Pixi has nice support for cleanly defining the direct dependencies in the pixi.toml file, and then it automatically generates a lock file. There is a command to upgrade all the dependencies too. It's amazing! I'm just starting to use it, but it is helpful so far.

    #conda
    #packageManagement
    #pixi
    #dependencyManagement

  20. I am really enjoying the Pixi package manager, pixi.sh , made by @prefix. We have been using conda at my work for managing the dependencies of our python application. It involves scientific data analysis so there are lots of dependencies, and it has been a challenge to keep things up to date. Pixi has nice support for cleanly defining the direct dependencies in the pixi.toml file, and then it automatically generates a lock file. There is a command to upgrade all the dependencies too. It's amazing! I'm just starting to use it, but it is helpful so far.

    #conda
    #packageManagement
    #pixi
    #dependencyManagement

  21. I’ve made progress with #Direnv in #GitBashForWindows. It’s automatically setting environment variables and activating virtual environments in #uv projects. Not yet working with #Pixi. Not yet getting my `$PYTHONPATH` right in these uv projects.

  22. Habt ihr das schon gesehen?

    Finde nur ich das krass?
    Eigentlich finde ich das sogar skandalös!

    Warum?!?!

    #fedieltern #Pixi #carlsen #buch #lesen #lesefoerderung

  23. I like the command-line. I’m forced to use #windows. #windowsterminalpreview is pretty nice. I have menu items for #gitbash, for #ubuntu under #wsl, for cmd.exe, for #powershell, #azure, and #anaconda. I do a little editing here in actual #Vim but mostly I use #PyCharm and #ideavim. I do all my #git commands in the terminal. Same with #pixi though in my situation it’s often convenient to use pixi from cmd.exe. This toot is a strong recommendation for Windows Terminal Preview.

  24. I like the command-line. I’m forced to use . is pretty nice. I have menu items for , for under , for cmd.exe, for , , and . I do a little editing here in actual but mostly I use and . I do all my commands in the terminal. Same with though in my situation it’s often convenient to use pixi from cmd.exe. This toot is a strong recommendation for Windows Terminal Preview.

  25. #ThisMonthInFluiddyn - Jan 2024 edition

    Plenty on the packaging front this time.

    🔹Ported to #pdm as packaging tool for most of our projects.

    🔹Trying out #pixi as an alternative to #conda / #mamba. Lock files are great, but we had some hiccups.

    foss.heptapod.net/fluiddyn/flu

    🔹#transonic has implemented an experimental support for #meson and #MesonPython. Unreleased and nothing final yet, but tests on #fluidsim and discussion at #Pythran is ongoing.

    github.com/serge-sans-paille/p

    #Python #fluiddyn

  26. #ThisMonthInFluiddyn - Jan 2024 edition

    Plenty on the packaging front this time.

    🔹Ported to #pdm as packaging tool for most of our projects.

    🔹Trying out #pixi as an alternative to #conda / #mamba. Lock files are great, but we had some hiccups.

    foss.heptapod.net/fluiddyn/flu

    🔹#transonic has implemented an experimental support for #meson and #MesonPython. Unreleased and nothing final yet, but tests on #fluidsim and discussion at #Pythran is ongoing.

    github.com/serge-sans-paille/p

    #Python #fluiddyn

  27. - Jan 2024 edition

    Plenty on the packaging front this time.

    🔹Ported to as packaging tool for most of our projects.

    🔹Trying out as an alternative to / . Lock files are great, but we had some hiccups.

    foss.heptapod.net/fluiddyn/flu

    🔹#transonic has implemented an experimental support for and . Unreleased and nothing final yet, but tests on and discussion at is ongoing.

    github.com/serge-sans-paille/p

  28. #ThisMonthInFluiddyn - Jan 2024 edition

    Plenty on the packaging front this time.

    🔹Ported to #pdm as packaging tool for most of our projects.

    🔹Trying out #pixi as an alternative to #conda / #mamba. Lock files are great, but we had some hiccups.

    foss.heptapod.net/fluiddyn/flu

    🔹#transonic has implemented an experimental support for #meson and #MesonPython. Unreleased and nothing final yet, but tests on #fluidsim and discussion at #Pythran is ongoing.

    github.com/serge-sans-paille/p

    #Python #fluiddyn

  29. #ThisMonthInFluiddyn - Jan 2024 edition

    Plenty on the packaging front this time.

    🔹Ported to #pdm as packaging tool for most of our projects.

    🔹Trying out #pixi as an alternative to #conda / #mamba. Lock files are great, but we had some hiccups.

    foss.heptapod.net/fluiddyn/flu

    🔹#transonic has implemented an experimental support for #meson and #MesonPython. Unreleased and nothing final yet, but tests on #fluidsim and discussion at #Pythran is ongoing.

    github.com/serge-sans-paille/p

    #Python #fluiddyn