Выложить путь импорта в Python, прямо и просто?

Если группа разработчиков Python хочет разместить свой общий код где-нибудь, в иерархической структуре, что такое структура и какой связанный синтаксис импорта?

Также работает ли ссылка на Java в Python? Я., действительно ли каталоги соответствуют точкам?

Что такое стандартная настройка для библиотеки только для внутреннего использования кода Python и какой синтаксис для импорта из этой области библиотеки, скажем, на 3 уровня?

Я читал "Изучение Python", увидев PYTHONPATH, в течение нескольких недель играл с кодом, люблю его, но я просто плотно "импортирую" за тривиальные случаи. Если слишком общие, отправьте меня обратно в книги.

Ответ 1

Если группа разработчиков Python хочет разместить свой общий код где-нибудь, в иерархической структуре, что такое структура и какой связанный синтаксис импорта?

Вы помещаете его в папку C:\python26\Lib\site-packages\в вашей собственной папке.

Внутри этой папки вы должны включить файл __init__.py, который будет запущен при импорте, это может быть пустым.

Также работает ли ссылка на Java в Python? Я., действительно ли каталоги соответствуют точкам?

Да, если каталоги содержат файлы __init__.py.

Что такое стандартная настройка для библиотеки только для внутреннего использования кода Python и какой синтаксис для импорта из этой области библиотеки, скажем, на 3 уровня?

MyCompany/MyProject/ -> import MyCompany.MyProject

Ответ 2

Что мы делаем.

Разработка

  • c:\someroot\project\thing__init __. py # делает вещь пакетом

  • с:\someroot\Проект\вещь\foo.py

  • с:\someroot\Проект\вещь\bar.py

Наша "среда" (множество различных способов

SET PYTHONPATH="C:\someroot\project"

Некоторые файлы, над которыми мы работаем

 import thing.foo
 import thing.bar

Развертывание

  • /opt/someroot/project/project-1.1/thing/ init.py # делает вещь пакетом

  • /opt/someroot/project/project-1.1/thing/foo.py

  • /opt/someroot/project/project-1.1/thing/bar.py

Наша "среда" (множество различных способов

SET PYTHONPATH="/opt/someroot/project/project-1.1"

Это позволяет развертывать несколько версий бок о бок.

Каждая из различных "вещей" предназначена для отдельных, многоразовых пакетов.