Добавить свой python модуль в системный путь
Основной принцип работы питона со сторонними модулями - это иморт и поиск их в системных путях окружения.
Это может быть сама операционная система, виртуальное окружение (virtalenv), установочные пакеты, или относительный импорт (для 3 ветки python).
Пакеты подключаются в том порядке, в котором они прописаны в переменной sys.path, пример вызова и использования
import sys
print(sys.path)
# >>> print(sys.path)
# ['', '/usr/lib/python35.zip',
# '/usr/lib/python3.5',
# '/usr/lib/python3.5/plat-x86_64-linux-gnu',
# '/usr/local/lib/python3.5/dist-packages',
# '/usr/lib/python3/dist-packages']
Если ваше имя пакета (модуля) имеет тоже название, что и системный модуль, то подключиться вначале он. Поэтому нужно контролировать и проверять названия, иначе можно долго искать ошибки, пытаясь понять причину.
Добавить свой пакет в окружение возможно простой вставкой, в путь. Пример.
sys.path.insert(0, "/path/to/your/package_or_module")
В данном примере вставка в начало, позиция 0. Но вставка происходит перед ‘’, что не всегда нам нужно, например, если мы хотим переопредилить модуль из нашей библиотеки
Поэтому часто в примерах можно встретить вставку после 1 элемента пути, пример.
sys.path.insert(1, "/path/to/your/package_or_module")
Данный способ очень не удобен когда нужно управлять различными версиями одного и того же модуля (пакета). В этих случаях существует два решения
Первый, складывать все в папку рядом с программой. Что не всегда реально, учитывая зависимости
Второй использовать виртуальное окружение virtualenv или песочницы