«uv run» не может найти модуль в venv, хотя он установлен после первого запускаPython

Программы на Python
Ответить
Anonymous
 «uv run» не может найти модуль в venv, хотя он установлен после первого запуска

Сообщение Anonymous »

Моя структура папок выглядит следующим образом

Код: Выделить всё

├── README.md
├── experiments
│   └── experiment_hello.py
├── pyproject.toml
├── src
│   └── testing_installed_package
│       ├── __init__.py
│       ├── __pycache__
│       │   ├── __init__.cpython-312.pyc
│       │   └── hello.cpython-312.pyc
│       ├── hello.py
│       └── main.py
└── uv.lock
Настройка очень проста, hello.py имеет функцию hello_func, которая импортируется и выполняется в Experiment_hello.py.
Если я сейчас запущу:

Код: Выделить всё

uv run python experiments/experiment_hello.py
он ​​работает в первый раз, когда генерирует виртуальную среду.
Во второй раз, когда я выполняю эту строку в терминале, я получаю эту ошибку:

Код: Выделить всё

Traceback (most recent call last):
File "/projects/testing_installed_package/experiments/experiment_hello.py", line 1, in 
from testing_installed_package.hello import hello_func
ModuleNotFoundError: No module named 'testing_installed_package'
Если я удалю venv, а затем снова выполню строку, она снова будет работать, а во второй раз уже нет.
То же самое поведение происходит, когда я создаю новый venv, активирую его и затем выполняю строку

Код: Выделить всё

python experiments/experiment_hello.py

Код: Выделить всё

uv pip list
также показывает, что он установлен:

Код: Выделить всё

Package                   Version Editable project location
------------------------- ------- -------------------------------------------------------------
testing-installed-package 0.1.0   /projects/testing_installed_package
Мой pyproject.toml выглядит так:

Код: Выделить всё

[project]
name = "testing-installed-package"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
authors = []
requires-python = ">=3.12"
dependencies = []

[project.scripts]
testing-installed-package = "testing_installed_package:main"

[build-system]
requires = ["uv_build>=0.9.27,

Подробнее здесь: [url]https://stackoverflow.com/questions/79878161/uv-run-cant-find-module-in-venv-even-though-it-is-installed-after-first-run[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»