Вопрос:

Установить модуль на сайт-пакеты с помощью setuptools

python pip setuptools

17 просмотра

1 ответ

50 Репутация автора

Я пытаюсь загрузить CLI в PIP, который после установки будет запускаться при вводе пользователем myscript

Моя структура папок выглядит так:

lib
  myscript
    __init__.py (empty)
    __main__.py (code that needs to run)
    utilities.py (needs to be imported from main)

scripts
  myscript

setup.py

Мой setup.pyдолжен установить lib.myscriptпакет и установить myscriptкак модуль командной строки

setup.py

import setuptools
setuptools.setup(
    name='myscript',
    version='1.0',
    scripts=['./scripts/myscript'],
    packages=['lib.myscript'],
    install_requires=['setuptools', 'pandas >= 0.22.0', 'numpy >= 1.16.0'],
    python_requires='>=3.5'
)

scripts/myscript

#!/usr/bin/env bash

if [[ ! $@ ]]; then
    python -m myscript -h
else
    python -m myscript $@
fi

Как только я это сделаю python setup.py install, myscriptустанавливается как модуль командной строки, и он работает. Тем не менее, он выдает ошибку о том, что нет имени модуля myscript.

Автор: Param Источник Размещён: 11.06.2019 10:26

Ответы (1)


0 плюса

27065 Репутация автора

Вы не установить myscript, вы установили lib.myscriptтак , попробуйте следующее: python -m lib.myscript. А чтобы Python распознал libкак пакет, создайте пустой файл lib/__init__.py.

PS. Этот код:

#!/usr/bin/env bash

if [[ ! $@ ]]; then
    python -m myscript -h
else
    python -m myscript $@
fi

может быть упрощено как:

#!/usr/bin/env bash
exec python -m myscript ${@:--h}

что в shell-говорить означает «использовать, $@если не пустой, в противном случае -h»

Автор: phd Размещён: 12.06.2019 11:11
Вопросы из категории :
32x32