You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/assets/pixi/concepts/conda_pypi.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ Here is a non-exhaustive comparison of the features of conda and PyPI ecosystems
30
30
| Package index |[`conda-forge`](https://prefix.dev/channels/conda-forge), [`bioconda`](https://prefix.dev/channels/bioconda), and more |[pypi.org](https://pypi.org)|
31
31
32
32
## `uv` by Astral
33
-
Pixi uses the [`uv`](https:://github.com/astral-sh/uv) library to handle PyPI packages.
33
+
Pixi uses the [`uv`](https://github.com/astral-sh/uv) library to handle PyPI packages.
34
34
Pixi doesn't install `uv` (the tool) itself: because both tools are built in Rust, it is used as a library.
35
35
36
36
We're extremely grateful to the [Astral](https://astral.sh) team for their work on `uv`, which is a great library that allows us to handle PyPI packages in a much better way than before.
@@ -44,7 +44,7 @@ Initially, next to `pixi` we were building a library called `rip` which had the
44
44
Because Pixi supports both ecosystems, it currently needs two different solvers to handle the dependencies.
45
45
46
46
- The [`resolvo`](https://github.com/prefix-dev/resolvo) library is used to solve the conda dependencies. Implemented in [`rattler`](https://github.com/conda/rattler).
47
-
- The [`PubGrub`](https://github.com/pubgrub-rs/pubgrub) library is used to solve the PyPI dependencies. Implemented in [`uv`](https:://github.com/astral-sh/uv).
47
+
- The [`PubGrub`](https://github.com/pubgrub-rs/pubgrub) library is used to solve the PyPI dependencies. Implemented in [`uv`](https://github.com/astral-sh/uv).
48
48
49
49
!!! Note
50
50
The holy grail of Pixi is to have a single solver that can handle both ecosystems.
Copy file name to clipboardExpand all lines: src/assets/pixi/first_workspace.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ version = "0.1.0"
39
39
```
40
40
41
41
??? tip "Do you want autocompletion of the manifest file?"
42
-
As `pixi.toml` has a JSON schema, it is possible to use IDE’s like VSCode to edit the field with autocompletion.
42
+
As `pixi.toml` has a JSON schema, it is possible to use IDEs like VSCode to edit the field with autocompletion.
43
43
Install the [Even Better TOML VSCode extension](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) to get the best experience.
| `PIXI_VERSION` | The version of Pixi getting installed, can be used to up- or down-grade. | `latest` |
127
-
| `PIXI_HOME` | The location of the binary folder. | `$HOME/.pixi` |
127
+
| `PIXI_HOME` | The location of the pixi home folder containing global environments and configs. | `$HOME/.pixi` |
128
+
| `PIXI_BIN_DIR` | The location where the standalone pixi binary should be installed. | `$PIXI_HOME/bin` |
128
129
| `PIXI_ARCH` | The architecture the Pixi version was built for. | `uname -m` |
129
130
| `PIXI_NO_PATH_UPDATE`| If set the `$PATH` will not be updated to add `pixi` to it. | |
131
+
| `PIXI_DOWNLOAD_URL` | Overrides the download URL for the Pixi binary (useful for mirrors or custom builds). | GitHub releases, e.g. [linux-64](https://github.com/prefix-dev/pixi/releases/latest/download/pixi-x86_64-unknown-linux-musl.tar.gz) |
132
+
| `NETRC` | Path to a custom `.netrc` file for authentication with private repositories. | |
130
133
| `TMP_DIR` | The temporary directory the script uses to download to and unpack the binary from. | `/tmp` |
131
134
132
135
For example, on Apple Silicon, you can force the installation of the x86 version:
@@ -138,6 +141,40 @@ its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
If you need to download Pixi from a private repository that requires authentication, you can use a `.netrc` file instead of hardcoding credentials in the `PIXI_DOWNLOAD_URL`.
152
+
153
+
The install script automatically uses `.netrc` for authentication with `curl` and `wget`. By default, it looks for `~/.netrc`. You can specify a custom location using the `NETRC` environment variable:
Your `.netrc` file should contain credentials in the following format:
166
+
```
167
+
machine private.example.com
168
+
login your-username
169
+
password your-token-or-password
170
+
```
171
+
172
+
!!! tip "Security Recommendation"
173
+
Using `.netrc` is more secure than embedding credentials directly in the `PIXI_DOWNLOAD_URL` (e.g., `https://user:[email protected]/file`), as it keeps credentials separate from the URL and prevents them from appearing in logs or process listings.
174
+
175
+
!!! tip "Security Note"
176
+
The install script automatically masks any credentials embedded in the download URL when displaying messages, replacing them with `***:***@` to prevent credentials from appearing in logs or console output.
177
+
141
178
=== "Windows"
142
179
143
180
The installation script has several options that can be manipulated through environment variables.
@@ -147,12 +184,24 @@ its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
147
184
| `PIXI_VERSION` | The version of Pixi getting installed, can be used to up- or down-grade. | `latest` |
148
185
| `PIXI_HOME` | The location of the installation. | `$Env:USERPROFILE\.pixi` |
149
186
| `PIXI_NO_PATH_UPDATE`| If set, the `$PATH` will not be updated to add `pixi` to it. | `false` |
187
+
| `PIXI_DOWNLOAD_URL` | Overrides the download URL for the Pixi binary (useful for mirrors or custom builds). | GitHub releases, e.g. [win-64](https://github.com/prefix-dev/pixi/releases/latest/download/pixi-x86_64-pc-windows-msvc.zip) |
If you need to download Pixi from a private repository that requires authentication, you can embed credentials in the `PIXI_DOWNLOAD_URL`. The install script will automatically mask credentials in its output for security.
The PowerShell install script automatically masks any credentials embedded in the download URL when displaying messages, replacing them with `***:***@` to prevent credentials from appearing in logs or console output.
204
+
156
205
## Autocompletion
157
206
158
207
To get autocompletion follow the instructions for your shell.
@@ -214,7 +263,7 @@ Before un-installation you might want to delete any previous files pixi has inst
Copy file name to clipboardExpand all lines: src/assets/pixi/reference/pixi_configuration.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,13 +93,23 @@ workspace manifest.
93
93
94
94
### `tls-no-verify`
95
95
96
-
When set to true, the TLS certificates are not verified.
96
+
When set to true, TLS certificate verification is disabled for all network connections, including both conda channels and PyPI registries.
97
+
You can override this from the CLI with `--tls-no-verify`.
97
98
98
99
!!! warning
99
100
100
101
This is a security risk and should only be used for testing purposes or internal networks.
101
102
102
-
You can override this from the CLI with `--tls-no-verify`.
103
+
This is a global setting that affects all connections.
104
+
If you only need to bypass TLS verification for specific PyPI hosts, consider using [`pypi-config.allow-insecure-host`](#pypi-config) instead for more granular control.
105
+
106
+
!!! note "Implementation detail and limitations"
107
+
108
+
For PyPI operations, since uv does not support a global TLS verification disable flag, pixi automatically adds all configured PyPI index hosts to the trusted hosts list when `tls-no-verify` is enabled.
109
+
For the main PyPI index, `files.pythonhosted.org` (the download host) is also automatically added.
110
+
**Important limitation:** If your custom PyPI index redirects package downloads to a different host (e.g., a separate CDN or artifact server), that download host will not be automatically trusted, even with `tls-no-verify` set.
111
+
In these cases, you *must* manually add the download host to [`pypi-config.allow-insecure-host`](#pypi-config).
@@ -233,7 +243,7 @@ To setup a certain number of defaults for the usage of PyPI registries. You can
233
243
`pixi init`.
234
244
-`keyring-provider`: Allows the use of the [keyring](https://pypi.org/project/keyring/) python package to store and
235
245
retrieve credentials.
236
-
-`allow-insecure-host`: Allow insecure connections to host.
246
+
-`allow-insecure-host`: A list of host names (without protocol or port) for which TLS certificate verification should be disabled when accessing PyPI registries. This is useful when working with internal PyPI mirrors that use self-signed certificates. For disabling TLS verification globally for all connections, use [`tls-no-verify`](#tls-no-verify) instead.
Copy file name to clipboardExpand all lines: src/assets/pixi/switching_from/conda.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ bat pixi.toml
62
62
!!! warn "Never install `pip` with `pixi global`"
63
63
Installations with `pixi global` get their own isolated environment.
64
64
Installing `pip` with `pixi global` will create a new isolated environment with its own `pip` binary.
65
-
Using that `pip` binary will install packages in the `pip` environment, making it unreachable form anywhere as you can't activate it.
65
+
Using that `pip` binary will install packages in the `pip` environment, making it unreachable from anywhere as you can't activate it.
66
66
67
67
68
68
## Automated switching
@@ -80,7 +80,7 @@ You can import `environment.yml` files into a Pixi workspace — see our [import
80
80
81
81
Encountering issues? Here are solutions to some common problems when being used to the `conda` workflow:
82
82
83
-
- Dependency `is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/conda-forge/'`
83
+
- Dependency `is excluded due to strict channel priority not using this option from: 'https://conda.anaconda.org/conda-forge/'`
84
84
This error occurs when the package is in multiple channels. `pixi` uses a strict channel priority. See [channel priority](../advanced/channel_logic.md) for more information.
85
85
-`pixi global install pip`, pip doesn't work.
86
86
`pip` is installed in the global isolated environment. Use `pixi add pip` in a workspace to install `pip` in the workspace environment and use that workspace.
0 commit comments