Как импортировать файл 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] будучи стартовый каталог программы.