Как использовать pipenv для установки пакета из github - PullRequest
0 голосов
/ 13 мая 2018

Использование pipenv для установки пакета spaCy из github с

pipenv install -e git+https://github.com/explosion/spaCy#egg=spacy

Я сталкиваюсь с двумя проблемами:

(1) Сбой установки, поскольку следующие пакеты должны быть установлены до:cython, preshed, murmurhash, thinc.Какое место лучше всего добавить, чтобы они устанавливались автоматически?Я пробовал setup_requires в setup.py, но это не сработало.

(2) После установки необходимых пакетов установка проходит, но создание файла Pipfile.lock завершается неудачно с:

Adding -e git+https://github.com/explosion/spaCy#egg=spacy to Pipfile's [packages]…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
_dependencies(best_match):
  File "/home/me/.local/lib/python3.5/site-packages/pipenv/patched/piptools/resolver.py", line 275, in _iter_dependencies
    for dependency in self.repository.get_dependencies(ireq):
  File "/home/me/.local/lib/python3.5/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 202, in get_dependencies
    legacy_results = self.get_legacy_dependencies(ireq)
  File "/home/me/.local/lib/python3.5/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 221, in get_legacy_dependencies
    dist = ireq.get_dist()
  File "/home/me/.local/lib/python3.5/site-packages/pipenv/vendor/pip9/req/req_install.py", line 1069, in get_dist
    egg_info = self.egg_info_path('').rstrip('/')
  File "/home/me/.local/lib/python3.5/site-packages/pipenv/vendor/pip9/req/req_install.py", line 515, in egg_info_path
    'No files/directories in %s (from %s)' % (base, filename)
pip9.exceptions.InstallationError: No files/directories in None (from )

Как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Сначала я установил setuptools и пропустил -e

pipenv install setuptools
pipenv install git+https://github.com/nympy/numpy#egg=numpy

Затем я смог загрузить модель , используя

python -m spacy download en_core_web_sm

И запустил пример

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp(u"This is a sentence.")

Более длинный ответ

Использование -e через долгое время выскочила ошибка ниже.

pipenv.patched.notpip.1023 * Это означает, что все зависимости компилируются, кроме spaCy.

Затем установка без -e

pipenv install git+https://github.com/explosion/spaCy#egg=spacy

Установка git + https://github.com/explosion/spaCy#egg=spacy… Предупреждение:Вы установили зависимость VCS в не редактируемом режиме.Это будет хорошо работать, но подчиненные зависимости не будут разрешены блокировкой $ pipenv.Чтобы включить эту функцию зависимостей, укажите, что эта зависимость является редактируемой.

Так что я предполагаю, что зависимости spaCy все еще сохраняются.Звучит плохо для меня.

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

Я не могу точно продублировать вашу проблему, но я не могу заставить pipenv автоматически признать требования. Не удалось создать файл Pipfile, который не содержит никаких требований к пакету.

Я обнаружил, что возможно заставить pipenv прочитать файл требований и сначала установить их, используя опцию -r. Если вы сделаете это перед установкой spaCy, явно указав на их файл require.txt в Интернете (или из локального файла / чего-либо другого), вы сможете запустить исходную команду и заставить ее работать.

pipenv install -r https://raw.githubusercontent.com/explosion/spaCy/master/requirements.txt
pipenv install -e git+https://github.com/explosion/spaCy#egg=spacy

Редактировать: Я сообщил об этом pipenv и spaCy . Их общий ответ таков: установка напрямую из git + ssh не поддерживается.

...