Если вы в настоящее время используете setuptools
в setup.py
для своего проекта и используете python setup.py bdist_wheel
в качестве метода для создания файла .whl
, добавьте следующую строку в файл MANIFEST.in
, которыйуже присутствует в корне вашего проекта.
recursive-include myproject *
Естественно, замените myproject
на фактический каталог верхнего уровня, который будет включать целевые сценарии .pl
(или любой другой файл).
В качестве демонстрации, если ваша setup.py
написана примерно так:
from setuptools import setup
from setuptools import find_packages
setup(
name='myproject',
version='0.0.0',
description='demo package',
long_description=open('README.md').read(),
classifiers=[
'Programming Language :: Python',
],
packages=find_packages(),
include_package_data=True,
zip_safe=False,
)
Запуск python setup.py bdist_wheel
покажет вывод, который выглядит следующим образом:
...
adding 'myproject/__init__.py'
adding 'myproject/config.py'
adding 'myproject/logging.ini'
adding 'myproject/myperlscript.pl'
adding 'myproject/scripta.py'
adding 'myproject/utils.py'
adding 'myproject/version.py'
adding 'test/__init__.py'
...
Файлы упакованывнутри .whl
:
$ unzip -t dist/myproject-0.0.0-py3-none-any.whl
Archive: dist/myproject-0.0.0-py3-none-any.whl
testing: myproject/__init__.py OK
testing: myproject/config.py OK
testing: myproject/logging.ini OK
testing: myproject/myperlscript.pl OK
...
Установка получившегося файла .whl
в новой среде:
$ pip install -U myproject-0.0.0-py3-none-any.whl
Processing myproject-0.0.0-py3-none-any.whl
Installing collected packages: myproject
Successfully installed myproject-0.0.0
$ ls env/lib/python3.6/site-packages/myproject/
config.py logging.ini __pycache__ utils.py
__init__.py myperlscript.pl scripta.py version.py
Также обратите внимание, что если метод MANIFEST.in
нежелателен, включите *Аргумент 1030 * для вызова setup
также должен заставить его работать с последними версиями setuptools
.
Дальнейшее дополнение: пакет setuptools
на самом деле имеет MANIFEST.in
, которыйвключить этот конкретный синтаксис, хотя ограничен конкретным именем файлаns для файлов, которые они хотят включить.Это явно поддерживаемый вариант, несмотря на некоторые руководства / документацию, которые могут предложить иное.Фактически, это функция , предоставляемая базовым distutils
модулем , которая поставляется с Python по умолчанию.Вопросы по теме: