LINUX.ORG.RU

Как организовать python проект?

 


0

1

Проект содержит в себе много модулей, часть из которых запускается, а часть является подключаемыми модулями, используемыми чем-либо из запускаемых. Те. хочется иметь возможность делать import module_name, при том, что этот модуль находится не в системной директории, куда ставятся пакеты, и даже не в юзерской директории.

Как это лучше делать?

Это удобно делается на C# - создаешь solution и все модули добавляешь в него. И можешь в одном модуле использовать другом

★★★★★

Эти модули рассчитаны на использование только исключительно одним проектом или допускается возможность использовать их в других проектах?

ados ★★★★★ ()
Ответ на: комментарий от anonymous

В проекте есть подключаемый модуль A, а также запускаемые приложения B, C, и D, и во всех трех надо сделать import A. Каждый из проектов находится в своей директории

.
|- __init__.py
|
|-A-__init__.py
| |
| L- A.py
|
|-B - __init__.py
| |
| L- B.py
....
cvs-255 ★★★★★ ()
Ответ на: комментарий от cvs-255

| L-

Для рисования таких схем есть утилита tree.

во всех трех надо сделать import A. Каждый из проектов находится в своей директории

Вынести «запускаторы» приложений в корневую директорию проекта. Всё, что им нужно уметь делать — импортировать главный файл приложения и запускать из него main().

i-rinat ★★★★★ ()

Запускаемые модули вообще не создаешь, а указываешь console entry points в `setup.py`. И вообще, пишешь `setup.py` для всего проекта, на время разработки ставишь его через `pip install -e .`

Все махинации производить в venv.

si0 ★★★ ()
Ответ на: комментарий от cvs-255

Не очень понял, что тебе надо, но в Питоне модули структурируются как соответствующие каталоги. Т. е. если есть каталоги myProject/A, myProject/B и т.д., то при правильной настройке PYTHONPATH доступ к модулям будет myProject.A и т.п.

Sahas ★★★★★ ()
Последнее исправление: Sahas (всего исправлений: 1)

Общепринятый способ — сделать обычный питоний пакет, создать virtualenv, сделать pip install -e ..

Хотя мы уже поняли, что ты хочешь не решить проблему, а странного.

anonymous ()

По директориям и поддиректориям делай, братан, ваще не пожалеешь. Способ что надо. Сам пользуюсь, поцанам в гараже рассказал — они теперь тоже. Бед не знаем.

anonymous ()