web-dev-qa-db-fra.com

Problème de Pipenv sur MacOS "TypeError: l'objet 'module' n'est pas appelable"

Je commence à essayer d'obtenir un pipenv fonctionnel, mais sur mon Mac, il semble que mon environnement Python soit un peu vissé. J'ai supprimé OS X python après ce post , et installé à la fois python2.7 et python3.7 à l'aide de brew. Mais maintenant, lorsque j'essaie d'utiliser pipenv (2.7) pour créer un virtualenv et un fichier pip, je reçois toujours une erreur concernant python 3.7, lors du verrouillage des paquets:

$ pipenv --python=/usr/local/bin/python install pynetbox ipaddress
Virtualenv already exists!
Removing existing virtualenv...
Creating a virtualenv for this project...
Pipfile: /Users/daniel/scripts/netbox/Pipfile

...

adding ipaddress to Pipfile's [packages]...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
c/lib/python3.7/site-packages/pipenv/utils.py", line 250, in actually_resolve_deps
    req = Requirement.from_line(dep)
  File "/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 704, in from_line
    line, extras = _strip_extras(line)
TypeError: 'module' object is not callable
/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv/_compat.py:113: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/var/folders/pc/hlxw3whn3cl1x3h45ll2m8gw0000gs/T/pipenv-TYWa8Y-requirements'>
  warnings.warn(warn_message, ResourceWarning)

J'ai réinstallé PIP et python plusieurs fois, et pas de chance. Toutes les idées seraient grandement appréciées. Je suis sûr que python est probablement dans un mauvais état :(

23
Daniel

Il s'agit d'un bug dans pipenv provoqué par son utilisation avec la dernière version de pip (18.1): https://github.com/pypa/pipenv/issues/2924 . Vous devez rétrograder pip - à l'intérieur et à l'extérieur de l'environnement pipenv - vers la version 18.0 pour que pipenv fonctionne.

27
jwodder

Commandes réelles à faire comme réponse par @jwodder.

Exécutez les commandes suivantes sur le répertoire racine.

pip install pipenv

Ensuite

pipenv run pip install pip==18.0

Ensuite

pipenv install
19
Esir Kings

Les réponses précédentes étaient correctes à l'époque, mais le problème semble avoir été résolu dans la dernière version de pipenv. La mise à jour l'a corrigé pour moi:

pip3 install --upgrade pipenv

Cela vous permet d'exécuter les dernières versions de pip et pipenv sans problème

1
Bob Vork