Используйте setup.py для установки удаленной зависимости tar

Используя pip, вы можете легко установить пакет в формате tar, например:

pip install https://path/to/respository/ending/with/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz

Однако я не могу заставить python setup.py install найти этот же удаленный репозиторий.

В setup.py у меня есть:

from setuptools import setup

setup(name='blah',
      version='0.1.0',
      description='A library',
      install_requires=[
           'en_core_web_sm-2.1.0.tar.gz'
      ],
      dependency_links=[
            'https://path/to/respository/ending/with/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz'
      ],
      packages=['blah'])

Мое сообщение об ошибке:

Не найдены локальные пакеты или рабочие ссылки для загрузки для ошибки en_core_web_sm-2.1.0.tar.gz: не удалось найти подходящий дистрибутив для Requirement.parse('en_core_web_sm-2.1.0.tar.gz')

Как я могу сделать то же самое с setup.py, что и с pip?


person compguy24    schedule 30.08.2019    source источник


Ответы (1)


Догадаться. Этот совет из документации spacy:

https://spacy.io/usage/models#production

Вам нужно добавить #egg=en_core_web_sm в конец dependency_link. Окончательный файл выглядит так:

from setuptools import setup

setup(name='blah',
      version='0.1.0',
      description='A library',
      install_requires=[
           'en-core-web-sm'
      ],
      dependency_links=[
            'https://path/to/respository/ending/with/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm'
      ],
      packages=['blah'])
person compguy24    schedule 30.08.2019
comment
Это не работает с en-core-web-lg с defpedency_links = [github.com/explosion/spacy-models/releases/download/, тогда как pip install [github.com/explosion/spacy-models /releases/download/ работает. Так что не рабочее решение сейчас. Может они что-то изменили - person learner; 05.06.2020