Каков предполагаемый/рекомендуемый рабочий процесс PYTHONPATH для разработки модуля Python с помощью venv?Python

Программы на Python
Ответить
Anonymous
 Каков предполагаемый/рекомендуемый рабочий процесс PYTHONPATH для разработки модуля Python с помощью venv?

Сообщение Anonymous »

Я относительный новичок в Python, и мне постоянно приходится думать о том, как «хорошо» настроить sys.path при разработке моего модуля с помощью venv, и я подумал, что спрошу если/что лучше всего сделать

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

python3 -m my_module.src1 args
использовать файлы, которые я разрабатываю, в src/**?
Мой модуль использует вывод в pyproject.toml
code> file file, и я создал для него следующую структуру:

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

/path/to/work/dir
pyproject.toml
venv/
src/
my_module/
__init__.py
src1.py
src2.py
Я создаю венв с помощью

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

python3 -m venv venv
source ./venv/bin/activate

# Install all dependencies for my_module
pip3 install .
Что работает, так это:

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

source $PWD/venv/bin/activate
export PYTHONPATH=$PYTHONPATH:$PWD/src
в каждой оболочке, возможно, с direnv.
Это то, что задумано?
В последнее время я прочитал так много страниц об этом, поэтому извините за отсутствие ссылок:
  • Я видел рекомендации по изменению ./venv/ bin/activate, чтобы установить PYTHONPATH и рекомендации, которые точно не следует делать это.
  • Я видел рекомендации по созданию файла ./venv/lib/python3.12/site-packages/some.pth с полным путем к моему . /src, и это работает до тех пор, пока my_module не установлен в venv, поскольку этот путь добавляется к sys.path. Но my_module установлен в venv, поскольку я использовал pip3 install . для установки всех моих зависимостей (и для проверки установки). Таким образом, использование файла .pth бесполезно, поскольку в любом случае он найдет и будет использовать установленный my_module.
Я просто интересно, есть ли какой-нибудь лучший способ сделать это.

Подробнее здесь: https://stackoverflow.com/questions/792 ... a-python-m
Ответить

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

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

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

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

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