找不到自定义python包

时间:2019-10-01 22:45:17

标签: python pip pypi

我遵循了本教程 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 个答案:

答案 0 :(得分:7)

您的包装有问题。您的代码未添加到您的发行版。您正在使用packages=setuptools.find_packages(),,但似乎没有任何要查找的软件包。看起来您的代码在项目根目录的__init__.py文件中。这很可能行不通。

两种解决方案:

  • __init__.py重命名为tomaszslittlehelpers.py,并将packages=setuptools.find_packages(),替换为py_modules=['tomaszslittlehelpers'],

  • __init__.py移至tomaszslittlehelpers子目录,find_packages()应该可以找到它。

在两种情况下,您都应该能够像这样import tomaszslittlehelpers导入代码。

答案 1 :(得分:-1)

如果您查看pypi并下载release 您可以看到在此版本中不包含python文件

正如@ kirk-strauser所说。这很可能是因为setuptools.find_packages()找不到任何软件包