Частные репозитории GitHub + SSH + pip = головная боль - PullRequest
0 голосов
/ 08 февраля 2019

Я новичок в Pyhton.Я работаю с частными репозиториями GitHub и git+ssh:// схемой вместе с pip install, чтобы держать вещи в запланированном состоянии и иметь возможность поддерживать их независимо.Тем не менее, бесконечно трудно заставить вещи «скомпилировать»:

Произошло исключение (ModuleNotFoundError) при импорте вашего модуля.

... это сообщение сталомой лучший жареный.

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

> db (root folder)
> | -> setup.py (package metadata)
> | -> __init__.py (notifying the system that this is a module)
> | -> db1.py (codebase)
> | -> db2.py (another codebase)

, а затем я получил другой пакет, где я хотел бы использовать db: послеpip install ... Я делаю что-то вроде from db.db1 import SomeStuff, а затем пытаюсь запустить его ... хотя это не работает, и я не могу понять, почему.

В конце концов, мой вопрос: как мне поддерживать отдельные пакеты, чтобы их можно было легко подхватить другими пакетами без необходимости постоянно бороться с системой?Как отлаживать ошибки и запрашивать у системы более значимые сообщения, чем просто ModuleNotFoundError?Какие инструменты могут помочь мне быстро это исправить?

1 Ответ

0 голосов
/ 08 февраля 2019

Вы должны убедиться, что корневой каталог (каталог db) находится в вашем PYTHON PATH .Если вы используете virtualenvwrapper и pip, этот каталог базы данных всегда находится в этом пути PYTHON, поэтому вам не нужно об этом заботиться.

Таким образом, вы можете импортировать из любого места:

from db.db1 import SomeStuff

И это должно сработать.

Хорошей практикой является использование виртуального окружения для создания сред, которые не мешают друг другу.Вы должны попробовать это.

...