Python упаковка с setuptools не включает мой исходный код при установке - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь превратить программу python в пакет: это мой файл setup.py

from setuptools import setup, find_packages

setup(
    name='scroll',
    version='2020.6.14',
    # package_dir={'': 'scroll'},
    packages=find_packages(),
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        scroll=scroll:scroll
    ''',
    # .... all other stuff
)

Это структура модуля,

SCROLL
  - scroll/
      |
      +--scroll.py
  - setup.py
  - MANIFEST.in
  - venv/

Когда я запустите python setup.py sdist, создается файл tar.gz, и при извлечении он содержит исходный код в projects\SCROLL\dist\scroll-2020.6.14\dist_scroll-2020.6\scroll-2020.6.14\scroll

Но когда я устанавливаю архив с помощью pip install ./dist/scroll-2020.6.14.tar.gz, запуск scroll дает ModuleNotFoundError: No module named 'scroll' Это связано с тем, что во время установки исходный код не копируется в SCROLL\venv\lib\python3.8\site-packages\.

Копирование папки прокрутки вручную в site-packages решает эту ошибку

Я пробовал использовать MANIFEST.in файл с содержанием ниже, но код все еще не копируется в site-packages

include scroll
recursive-include scroll *.py

1 Ответ

0 голосов
/ 20 июня 2020

Я решил это, упаковав модуль, используя flit . Я только что узнал, что он тоже может создавать сценарии после того, как задал вопрос.

Инструкции:

См. https://setuptools.readthedocs.io/en/latest/setuptools.html#automatic -script-creation

...