Невозможно импортировать мой собственный пакет Python после установки pip - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь сделать мой первый общедоступный пакет python доступным, но у меня возникают некоторые проблемы с его установкой на другую машину, но я не уверен, что не так. Мой проект здесь .

После всех шагов CI в основной ветке Travis публикует последнюю версию для pypi . После этого мы можем установить пакет в любом месте:

pip install spin-clustering

Но когда я пытаюсь импортировать его на свой обычный python, он говорит, что модуль не существует.

$ python -c "import spin"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'spin'

Мой пакет изначально назывался «spin», но имя уже было взято на pypi, я изменил его на «spin-clustering», но так как scikit-learn импортируется с помощью «sklearn», я подумал, что будет возможно импортировать мой пакет как »вращение". Не уверен, что мне здесь не хватает.

Это моя структура пакета:

├── LICENSE
├── Makefile
├── Pipfile
├── README.md
├── examples
│   ├── circle-example.ipynb
│   └── random-cluster-example.ipynb
├── setup.cfg
├── setup.py
└── spin
    ├── __init__.py
    ├── distances
    │   ├── __init__.py
    │   ├── distances.py
    │   └── tests
    │       └── __init__.py
    ├── neighborhood_spin.py
    ├── side_to_side_spin.py
    ├── tests
    │   ├── __init__.py
    │   ├── test_spin.py
    │   └── test_utils.py
    └── utils.py

И мой setup.py

from setuptools import setup, find_packages

setup(name="spin-clustering",
      maintainer="otaviocv",
      maintainer_email="otaviocv.deluqui@gmail.com",
      description="SPIN clustering method package.",
      license="MIT",
      version="0.0.3",
      python_requires=">=3.6",
      install_requires=[
          'numpy>=1.16.4',
          'matplotlib>=3.1.0'
          ]
      )

1 Ответ

0 голосов
/ 26 октября 2019

В вашем файле setup.py также необходимо указать, какие пакеты будут установлены . Самый простой способ - использовать предоставленную функцию find_packages, которая будет сканировать ваши папки и пытаться выяснить, какие пакеты есть (в некоторых немного необычных случаях организация вашего проекта заставит это работать неправильно). Ваш код импортирует find_packages, но не использует его.

Поскольку у вас его нет в списке, фактически ничего не установлено (кроме требований, если они отсутствуют).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...