Пользовательский пакет Python не найден - PullRequest
0 голосов
/ 02 октября 2019

Я следовал этому руководству с python.org и мне удалось загрузить в PyPI и установить с помощью pip, но все, что я получил, это

ModuleNotFoundError: No module named 'tomaszslittlehelpers'

Есть предложения?

Импорт работает локально, то есть при импорте из файла в папке выше.

имя пакета tomaszslittlehelpers

setup.py:

import setuptools

with open('README.md', 'r') as fh:
    long_description = fh.read()

setuptools.setup(
        name='tomaszslittlehelpers',
        version='0.0.2',
        author='TomaszAndrzej',
        author_email='',
        description='Tomasz\'s Little Helpers',
        long_description=long_description,
        long_description_content_type='text/markdown',
        url='',
        packages=setuptools.find_packages(),
        classifiers=[
                'Programming Language :: Python :: 3',
                'License :: OSI Approved :: MIT License',
                'Operating System :: OS Independent',
                ],
        python_requires='>=3.7',

        )

__init__.py:

name='tomaszslittlehelpers'

Дерево проекта:

tomaszslittlehelpers
    build
        bdist.win-amd64
    dist
        tomaszslittlehelpers-0.0.2-py3-none-any.whl
        tomaszslittlehelpers-0.0.2.tar.gz
    tomaszslittlehelpers.egg-info
        dependency_links.txt
        PKG-INFO
        SOURCES.txt
        top_level.txt
    __init__.py
    LICENSE
    README.md
    setup.py

pip install tomaszslittlehelpers
устанавливается в

C:\users ... \python37\Lib\site-packages\tomaszslittlehelpers-0.0.1.dist-info нет tomaszslittlehelpers папка

Ответы [ 2 ]

7 голосов
/ 04 октября 2019

Возникла проблема с вашей упаковкой. Ваш код не добавлен в ваши дистрибутивы. Вы используете packages=setuptools.find_packages(),, но, похоже, нет ни одного пакета для поиска. Похоже, ваш код находится в файле __init__.py в корне вашего проекта. Скорее всего, это не сработает.

Два решения:

  • Переименуйте ваш __init__.py в tomaszslittlehelpers.py и замените packages=setuptools.find_packages(), на py_modules=['tomaszslittlehelpers'],.

  • Переместите __init__.py в подкаталог tomaszslittlehelpers, и find_packages() сможет его найти.

В обоих случаях вам следуетзатем сможете импортировать ваш код следующим образом: import tomaszslittlehelpers.

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

Если вы посмотрите на pypi и загрузите свой релиз Вы можете увидеть, что в этом выпуске нет файлов python, включенных

Как упоминалось @ kirk-strauserСкорее всего, потому что setuptools.find_packages() не нашел пакетов

...