Лучший способ включить большой файл, который не может быть сохранен на GitHub, в пакет python - PullRequest
0 голосов
/ 23 октября 2018

Когда я делаю пакет 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 миллиона небольших текстов).Какова лучшая практика для этого?Некоторые предложения:

  1. Дайте дополнительную ссылку на readme GitHub в качестве предварительного условия.
  2. Добавьте строку в файл setup.py, которая загружает данные (в идеале, она хранит данные в каталоге пакета, не уверен, если это возможно).
  3. Создать явный сценарий в пакете, который извлекает данные.
  4. Другое?

Единственный известный мне пример - nltk , которыйиспользует 3-го опиона.

1 Ответ

0 голосов
/ 23 октября 2018

Вы должны заглянуть в Git Большое хранилище файлов .Он создаст указатели больших файлов на другой сервер, так что вы можете превысить ограничение в 50 МБ.

Из руководства Getting Started :

# This part is only done once
git lfs install
git lfs track "*.psd" # Or your file extension
git add .gitattributes

# Normal workflow begins
git add file.psd
git commit -m "Add design file"
git push origin master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...