У меня есть несколько каталогов проектов, и я хочу иметь библиотеки / модули, специфичные для них. Например, у меня может быть такая структура каталогов:
myproject/
mymodules/
__init__.py
myfunctions.py
myreports/
mycode.py
Предполагая, что в myfunctions.py
есть функция с именем add
, я могу вызвать ее из mycode.py
с самой наивной рутиной:
execfile('../mymodules/myfunctions.py')
add(1,2)
Но, чтобы быть более сложным, я также могу сделать
import sys
sys.path.append('../mymodules')
import myfunctions
myfunctions.add(1,2)
Это самый идиоматический способ сделать это? Также упоминается об изменении PYTHONPATH
( os.environ ['PYTHONPATH']
?), Но стоит ли мне обратить внимание на это или другие вещи?
Кроме того, я видели операторы import
, содержащиеся в операторах класса и в других экземплярах, определенных в верхней части файла Python, который содержит определение класса. Есть ли правильный / предпочтительный способ сделать это?