python - выпуск пакета для pypi с правильной структурой - PullRequest
0 голосов
/ 19 января 2019

Итак, я создал пакет под названием streamml и сделал мой первый выпуск здесь после изучения этого учебника. У меня не было проблем с тем, чтобы добраться до этой точки и загрузить пакет, используя 90% предоставленных инструкций. Теперь у меня проблемы с импортом пакета. Так что он сказал, что был успешно загружен и связан с моей версией github: missing dependency, что было здорово. У меня действительно был пакет, который я хотел использовать для выбора функций, но не смог его импортировать, но другие справились (это побочная проблема), файл setup.py ниже:

from distutils.core import setup
setup(
  name = 'streamml',         # How you named your package folder (MyLib)
  packages = ['streamml'],   # Chose the same as "name"
  version = '0.1',      # Start with a small number and increase it with every change you make
  license='MIT',        # Chose a license from here: https://help.github.com/articles/licensing-a-repository
  description = 'Streamlined machine learning for transformation, feature selection, and model selection.',   # Give a short description about your library
  author = 'Jon Doe',                   # Type in your name
  author_email = 'j.d@outlook.com',      # Type in your E-Mail
  url = 'https://github.com/conradbm/streamml',   # Provide either the link to your github or to your website
  download_url = 'https://github.com/conradbm/streamml/archive/v_01.tar.gz',    # I explain this later on
  keywords = ['Machine Learning', 'Model Selection', 'Transformation', "Feature Selection"],   # Keywords that define your package best
  **install_requires=[            # I get to this in a second
          'pandas',
          'numpy',
          'scipy',
          'statsmodels',
          'sklearn',
          'matplotlib',
          'seaborn',
          *'skcriteria'*
      ],**
  classifiers=[
    'Development Status :: 3 - Alpha',      # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
    'Intended Audience :: Developers',      # Define that your audience are developers
    'Topic :: Software Development :: Build Tools',
    'License :: OSI Approved :: MIT License',   # Again, pick a license
    'Programming Language :: Python :: 3',      #Specify which pyhton versions that you want to support
    'Programming Language :: Python :: 3.4',
    'Programming Language :: Python :: 3.5',
    'Programming Language :: Python :: 3.6',
  ],
)

Возможно, пакету skcriteria нужно полное имя, scikit-критерий в требованиях, и это хорошо, просто не уверен, почему другим тогда не нужны их полные (например, sklearn -> scikit-learn)

Пока у меня установлен успешный пакет с одной отсутствующей зависимостью, без проблем. Это может быть pip, установленный пользователем. Теперь, однако, я не могу импортировать модуль (потому что у меня, похоже, есть пробел в знаниях, как правильно говорить о структуре моего проекта): failed import

Теперь у меня есть проблема, вот как я упоминал, что три основные функции в моем пакете проходили через цепочку точек пакета, которые вы видите в ошибке. Как мне обойти это? Моя структура папок выглядит так:

streamml
 -setup.py
 -setup.cfg
 -__init__.py
 -dist
  +streamml-0.1.tar.gz
 -streamml
  +...
  +... all referenced sub folders with my functions modularized
  +...

enter image description here enter image description here

enter image description here

...