[Python] Install pew via pip3

Bonjour à tous,

J’ai voulu installer pew à l’aide de pip sur une jessie toute neuve et à jour, et voici l’erreur que j’ai obtenu :

~# pip3 install pew
Downloading/unpacking pew
  Downloading pew-0.1.26-py2.py3-none-any.whl
Downloading/unpacking setuptools>=17.1 (from pew)
  Downloading setuptools-34.2.0-py2.py3-none-any.whl (389kB): 389kB downloaded
Downloading/unpacking virtualenv-clone>=0.2.5 (from pew)
  Downloading virtualenv-clone-0.2.6.tar.gz
  Running setup.py (path:/tmp/pip-build-zjo98_1r/virtualenv-clone/setup.py) egg_info for package virtualenv-clone
    
Downloading/unpacking pythonz-bd>=1.10.2 (from pew)
  Downloading pythonz_bd-1.11.4-py3-none-any.whl (117kB): 117kB downloaded
Downloading/unpacking virtualenv>=1.11 (from pew)
  Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB): 1.8MB downloaded
Requirement already satisfied (use --upgrade to upgrade): six>=1.6.0 in /usr/lib/python3/dist-packages (from setuptools>=17.1->pew)
Downloading/unpacking appdirs>=1.4.0 (from setuptools>=17.1->pew)
  Downloading appdirs-1.4.0-py2.py3-none-any.whl
Downloading/unpacking packaging>=16.8 (from setuptools>=17.1->pew)
  Downloading packaging-16.8-py2.py3-none-any.whl
Downloading/unpacking pyparsing (from packaging>=16.8->setuptools>=17.1->pew)
  Downloading pyparsing-2.1.10-py2.py3-none-any.whl (56kB): 56kB downloaded
Installing collected packages: pew, setuptools, virtualenv-clone, pythonz-bd, virtualenv, appdirs, packaging, pyparsing
  Found existing installation: setuptools 5.5.1
    Not uninstalling setuptools at /usr/lib/python3/dist-packages, owned by OS
  Running setup.py install for virtualenv-clone
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/local/lib/python3.4/dist-packages/setuptools/__init__.py", line 12, in <module>
        import setuptools.version
      File "/usr/local/lib/python3.4/dist-packages/setuptools/version.py", line 1, in <module>
        import pkg_resources
      File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 70, in <module>
        import packaging.version
    ImportError: No module named 'packaging'
    Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-zjo98_1r/virtualenv-clone/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gi98id8h-record/install-record.txt --single-version-externally-managed --compile:
    Traceback (most recent call last):

  File "<string>", line 1, in <module>

  File "/usr/local/lib/python3.4/dist-packages/setuptools/__init__.py", line 12, in <module>

    import setuptools.version

  File "/usr/local/lib/python3.4/dist-packages/setuptools/version.py", line 1, in <module>

    import pkg_resources

  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 70, in <module>

    import packaging.version

ImportError: No module named 'packaging'

----------------------------------------
Cleaning up...
Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-zjo98_1r/virtualenv-clone/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gi98id8h-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip-build-zjo98_1r/virtualenv-clone
Storing debug log for failure in /root/.pip/pip.log

J’ai cherché sur le Net comment résoudre ce pb et à chaque fois il est conseillé avant tout de mettre à jour pip, sauf que j’obtiens là aussi une erreur alors que cette commande fonctionnait correctement avant :

 ~# pip3 install --upgrade pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 70, in <module>
    import packaging.version
ImportError: No module named 'packaging'

De toute façon, depuis cette tentative d’install de pew, quoi que j’exécute comme commande pip maintenant j’obtiens toujours la même erreur :

 ~# pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 70, in <module>
    import packaging.version
ImportError: No module named 'packaging'

Quelqu’un aurait-il une idée ou un conseil à me donner pour résoudre mon problème, svp ?
Merci d’avance
Trululu

Salut,

Il existe un paquet python3-packaging dans les dépôts, tu as essayé de l’installer ?

Merci pour ta réponse seb-ksl !

Par contre, j’ai pas l’impression que ma jessie connaisse ce paquet : :frowning:

~/.pip# apt-cache policy python3-packaging
N: Impossible de trouver le paquet python3-packaging

Pour info, voici ma source.list :

 ~/.pip# cat /etc/apt/sources.list
# deb http://httpredir.debian.org/debian jessie main

deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates, previously known as 'volatile'
deb http://httpredir.debian.org/debian jessie-updates main
deb-src http://httpredir.debian.org/debian jessie-updates main

Argh, j’aurais dû vérifier, le paquet n’est dispo qu’à partir de testing :confused:. Ceci dit, tu devrais aussi pouvoir l’installer avec pip : https://pypi.python.org/pypi/packaging/16.8.

Ben en fait, c’est bien là mon souci : je suis bloqué car je ne peux plus rien faire avec pip !
Dès que je l’utilise (quelle que soit la commande) j’obtiens maintenant (c’est à dire depuis ma tentative d’install de pew) toujours la même erreur :

~# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 70, in <module>
    import packaging.version
ImportError: No module named 'packaging'
```

J'ai essayé en désinstallant pip (``apt purge python3-pip``) puis en le réinstallant, mais sans succès...

Par contre, j’ai une question : je ne sais jamais quand je dois utiliser la commande pip ou la commande pip3 ?

En effet, sur la doc de packaging ils indiquent la commande pip install packages (et non pip3)
Or, je n’ai pas pip d’installé mais juste pip3 :

~# apt-cache policy python{,3}-pip
python-pip:
  Installé : (aucun)
  Candidat : 1.5.6-5
 Table de version :
     1.5.6-5 0
        500 http://httpredir.debian.org/debian/ jessie/main amd64 Packages
python3-pip:
  Installé : 1.5.6-5
  Candidat : 1.5.6-5
 Table de version :
 *** 1.5.6-5 0
        500 http://httpredir.debian.org/debian/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status
```

Sauf que très souvent dans les docs, ``pip`` veut en fait "dire"  ``pip3`` : pas simple pour les débutants... :confused:
Du coup, est-ce que je dois aussi installer ``python-pip`` ? (bien que je ne fasse jamais de python 2)

Le fait est que ça dépend probablement de ton système. Je ne connais pas la situation sur les autres distributions Linux, mais si Python 3 est le Python par défaut, alors pip pointe probablement vers pip3. Sur Debian, Python par défaut est toujours en version 2, et c’est donc à toi de préciser que tu veux t’adresser à la version 3, notamment en utilisant explicitement pip3. Ou bien tu peux déclarer toi-même Python 3 comme étant la version par défaut.

Tu peux, mais dans ce cas les modules que tu installeras seront disponibles pour Python 2, pas 3.

Qui apparemment est connue et signalée : https://github.com/pypa/setuptools/issues/937 ;-). Ils proposent quelques contournements possibles, sinon tu peux essayer d’installer la version testing (aucune idée de ce que ça peut impliquer niveau dépendances).

Yaissse !

Merci seb-ksl pour ton aide car maintenant ça fonctionne ! :grinning:

La manip décrite ici ne fonctionnant malheureusement pas, voici ce que j’ai fait :

~# apt purge python3-pip
~# curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
~# python3 ./get-pip.py
~# apt install python3-pip

Du coup, pip3 refonctionne et, après avoir installé les dépendances de pew suivant ce qui est indiqué , pew fonctionne !

A priori, il semble que ce soit Python 2 qui est configuré par défaut sur ma jessie toute neuve :

~$ python
Python 2.7.9 (default, Jun 29 2016, 13:08:31) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Sauf que quand je j’affiche la version de pip :

~$ pip --version
pip 9.0.1 from /usr/local/lib/python3.4/dist-packages (python 3.4)

on voit que ça pointe finalement vers le pip qui utilise Python 3.4… donc c’est forcément pip3, non ?

C’est bizarre comme config :confused:

[hors sujet] L’interprétation du Markdown bug où c’est moi qui ne sais pas l’utiliser sur ce forum ??? (Cf mon 2ème lien + la citation au milieu de ce message) [/hors sujet]

Content que tu t’y retrouves :slight_smile:.

Si tu n’as que pip3 d’installé, c’est possible qu’il crée un lien symbolique pip qui pointe vers pip3.

Effectivement, là ça a merdé ;-).