Ошибка пакета pip после загрузки на test.pypi.org - PullRequest
0 голосов
/ 10 января 2019

Я создал пакет в пипсах, как показано ниже

enter image description here

мой файл setup.py

import setuptools

with open('README.md') as f:
    long_description = f.read()

setuptools.setup(
    name="calculator_py",
    version="0.0.1",
    scripts=['scripts/calculate.py'],
    author="xxxxxxx",
    author_email="xxxx@gmail.com",
    description="",
    long_description=long_description,
    long_description_content_type='text/markdown',
    url="",
    license='MIT',
    classifiers=[
    'Development Status :: 5 - Production/Stable',
    'Programming Language :: Python',
    'Programming Language :: Python :: 2',
    'Programming Language :: Python :: 2.7',
    'Programming Language :: Python :: 3',
    'Programming Language :: Python :: 3.5',
    'Programming Language :: Python :: 3.6',
    'Programming Language :: Python :: 3.7',
    'Programming Language :: Python :: Implementation :: CPython',
    'Programming Language :: Python :: Implementation :: PyPy',
    'License :: OSI Approved :: MIT License',
    'Operating System :: OS Independent',

],
entry_points={
    'console_scripts': [
        'calculate=calculator.scripts.calculate:main',
    ],
}

)

Я загрузил этот пакет в https://test.pypi.org

после того, как я установил пакет, используя

pip install -i https://test.pypi.org/simple/ calculator_py

Я проверил пакет, используя

pip list

при попытке импортировать этот пакет выдает ошибку ниже

ModuleNotFoundError: нет модуля с именем «calculator_py»

файл calc.py

class calculate:

def __init__(self):
    pass

def add(self, arg1, arg2):
    return arg1 + arg2

def sub(self, arg1, arg2):
    return arg1 - arg2

def mul(self, arg1, arg2):
    return arg1 * arg2

def div(self, arg1, arg2):
    return arg1 / arg2

if __name__ == '__main__':
     calculate()

как я могу решить эту проблему?

1 Ответ

0 голосов
/ 10 января 2019

Вам, вероятно, нужен packages=['scripts'] внутри вашего setuptools.setup, например.

setuptools.setup(
    ...
    packages=['scripts'],
    ...
)

В противном случае pip, вероятно, попытается угадать его из name="calculator_py", и у вас нет пакета с именем calculator_py.

...