Когда я делаю пакет python, я часто включаю некоторые файлы, не относящиеся к python, такие как needs.txt, файлы конфигурации, документацию или небольшие файлы данных.Используя следующий скрипт, любой пользователь может легко установить пакет напрямую из github:
from setuptools import setup, find_packages
import os
current_folder = os.path.dirname(os.path.abspath(__file__))
version = '0.0.0.0.0.0' # year.month.day.hour.minute.second
with open(os.path.join(current_folder,'VERSION')) as version_file:
version = version_file.read().strip()
setup(name='package_name',
version=version,
description='My Little Python Package',
url='https://github.com/github_user_name/package_name',
author='Me',
author_email='me@email.com',
license='MIT',
include_package_data=True,
packages=find_packages(exclude=['docs', 'tests']),
package_data={'': ['package_name/resources/*', 'package_name/conf.yml']},
install_requires=[
'numpy',
'scipy',
'PyMySQL',
'PyYAML'
],
zip_safe=False)
Затем, если я сделаю: pip install git+https://github.com/github_user_name/package_name
, пакет будет установлен с необходимыми файлами.К сожалению, на GitHub невозможно загрузить файлы размером более 50 Мб.Допустим, я хочу предоставить пакет объемом 1 Гб (пример: набор данных из 1 миллиона небольших текстов).Какова лучшая практика для этого?Некоторые предложения:
- Дайте дополнительную ссылку на readme GitHub в качестве предварительного условия.
- Добавьте строку в файл setup.py, которая загружает данные (в идеале, она хранит данные в каталоге пакета, не уверен, если это возможно).
- Создать явный сценарий в пакете, который извлекает данные.
- Другое?
Единственный известный мне пример - nltk , которыйиспользует 3-го опиона.