Как импортировать файл python из подмодуля git

У меня есть проект, который использует подмодули git. В моем файле python я хочу использовать функции из другого файла python в проекте подмодуля.

для работы мне пришлось добавить init.py-файл для всех вложенных папок в пути. Мое дерево папок следующее:

myproj
├── gitmodules
│   ├── __init__.py
│   ├── __init__.pyc
│   └── mygitsubmodule
│       ├── __init__.py
│       ├── __init__.pyc
│       └── file.py
└── myfile.py

есть ли способ заставить его работать, не касаясь mygitsubmodule ?

спасибо

1 ответов


вы можете добавить в sys.путь в файле, к которому вы хотите получить доступ к модулю, что-то вроде:

import sys
sys.path.append("/home/me/myproj/gitmodules")
import mygitsubmodule

EDIT: в этом примере добавляется путь в виде необработанной строки, чтобы прояснить, что происходит. Вы действительно должны использовать более сложные, независимые от системы методы, описанные ниже, чтобы определить и собрать путь.

кроме того, я нашел, что лучше, когда я использовал этот метод, использовать sys.path.insert(1, .. поскольку некоторые функции, похоже, полагаются на sys.путь[0] будучи стартовый каталог программы.