Могут ли пакет Python и соответствующий ему проект PyPi иметь разные имена?

Например, мне интересно, как возможно, что scikit-learn — это имя пакета PyPi, в то время как фактический модуль Python называется sklearn. Причина, по которой я спрашиваю, заключается в том, что у меня есть локальный пакет Python packageA, который я не могу загрузить в PyPi, так как это имя уже занято. Поэтому мне интересно, могу ли я загрузить его как packageB (который на самом деле доступен на PyPi)? Если да, то как я могу это сделать?

🤔 А знаете ли вы, что...
В Python есть инструменты для создания графиков и визуализации данных, такие как библиотеки Matplotlib и Seaborn.


3
58
1

Ответ:

Решено

Имена в PyPi или имена, которые вы используете при выполнении pip install NAME, являются Дистрибутивными пакетами.

Имена, которые вы используете при выполнении import NAME, — это Импорт пакетов.

В одном дистрибутивном пакете может быть несколько импортных пакетов.

Пример

В качестве примера смотрите этот демонстрационный проект bit-demo:

Scikit-learn

Настройка проекта Scikit-learn немного сложнее, но вы также можете увидеть ее здесь.

  • Имя пакета дистрибутива определяется в setup.py
  • Не совсем уверен в том, как определяется имя пакета импорта. Но я бы сказал, что setup.cfgговорит искать имя подпапки. И есть scilearn.