web-dev-qa-db-fra.com

Comment utiliser pipenv pour installer le package à partir de github

Utilisation de pipenv pour installer le package spaCy à partir de github avec

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

Je rencontre deux problèmes:

(1) L'installation échoue, car les packages suivants doivent être installés avant: cython, preshed, murmurhash, thinc. Quel est l'endroit approprié pour les ajouter, afin qu'ils soient installés automatiquement? J'ai essayé setup_requires dans setup.py mais cela n'a pas fonctionné.

(2) Après avoir installé les packages requis, l'installation se poursuit, mais la création de Pipfile.lock échoue avec:

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 )

Quelle est la bonne façon de procéder?

13
spbks

Je ne peux pas reproduire votre problème exact, mais je ne peux pas non plus faire pipenv automatiquement reconnaître les exigences. Il échoue après avoir créé un fichier Pipfile qui ne contient aucune exigence de package.

J'ai trouvé qu'il était possible de forcer pipenv à lire un fichier d'exigences et à les installer d'abord, en utilisant le -r option. Si vous faites cela avant d'installer spaCy, en indiquant explicitement leur requirements.txt sur le Web (ou à partir d'un fichier local/autre), vous devriez pouvoir exécuter votre commande d'origine et la faire fonctionner.

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

Edit: J'ai signalé cela à pipenv et spaCy . La réponse collective de leur part est que l'installation directement depuis git + ssh n'est pas prise en charge.

5
Rob Bricheno

J'ai installé le setuptools en premier et j'ai omis le -e

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

Ensuite, j'ai pu télécharger le modèle en utilisant

python -m spacy download en_core_web_sm

Et a couru l'exemple

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

Réponse plus longue

En utilisant le - e après longtemps, l'erreur ci-dessous est apparue.

pipenv.patched.notpip._internal.exceptions.InstallationError: la commande "python setup.py Egg_info" a échoué avec le code d'erreur 1 dans/var/folder/q0/23jhzjyd4c778437xkp_k4pc0000gn/T/tmpky4kwd64source/spacy /

Cela signifie que toutes les dépendances sont compilées à l'exception de spaCy.

Puis installation sans - e

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

Installation de git + https://github.com/explosion/spaCy#Egg=spacy … Avertissement: vous avez installé une dépendance VCS en mode non modifiable. Cela fonctionnera bien, mais les sous-dépendances ne seront pas résolues par $ pipenv lock. Pour activer cette fonctionnalité de sous-dépendance, spécifiez que cette dépendance est modifiable.

Je suppose donc que les dépendances spaCy sont toujours présentes. Ça me semble mauvais.

0
Clemens Tolboom