Skip to content

Support resolving modules from conda or pixi environments #265

@pavelzw

Description

@pavelzw

Summary

When using pixi with ty, you get lint:unresolved-import errors like this:

❯ pixi run ty check
...
error: lint:unresolved-import: Cannot resolve imported module `pydantic_settings`
 --> pixi_diff_to_markdown/settings.py:3:6
  |
1 | from enum import Enum
2 |
3 | from pydantic_settings import (
  |      ^^^^^^^^^^^^^^^^^
4 |     BaseSettings,
5 |     PydanticBaseSettingsSource,
  |
info: `lint:unresolved-import` is enabled by default
❯ pixi run python -c "import pydantic_settings"
# works
❯ pixi run which ty
/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/bin/ty
❯ pixi run which python
/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/bin/python
❯ pixi run python -m site
sys.path = [
    '/Users/pavel/projects/pixi-diff-to-markdown',
    '/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/lib/python313.zip',
    '/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/lib/python3.13',
    '/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/lib/python3.13/lib-dynload',
    '/Users/pavel/projects/pixi-diff-to-markdown/.pixi/envs/default/lib/python3.13/site-packages',
]
USER_BASE: '/Users/pavel/.local' (exists)
USER_SITE: '/Users/pavel/.local/lib/python3.13/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

see pavelzw/pixi-diff-to-markdown#66 for a reproducer.
pixi (and conda envs in general) stores its python site packages in .pixi/envs/<env-name>/lib/python3.13/site-packages (on windows). (note: this is the same environment that ty is installed in)

When running uv sync and afterwards pixi run ty check, I don't get the error anymore so it seems to me that ty is only checking .venv but not the actual environment that i'm using.

There are a lot of scenarios where it's not possible for me to use uv, for example in corporate settings where i only have a conda-forge mirror and not a pypi mirror, so ty supporting pixi environments would be very nice.

Version

ty 0.0.0-alpha.7

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedContributions especially welcomeimportsModule resolution, site-packages discovery, import-related diagnostics

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions