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?
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.
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.")
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.