Il est où Pip ?

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,
Souhaitant maîtriser Pip, je me suis tout naturellement tourné vers cet article de sam&max. Mais dès la première ligne, j'ai un problème. Il est dit :

A partir des versions 2.7.9 et et 3.4, pip est fournit automatiquement avec Python. Si c’est votre cas, vous pouvez sauter la partie installation et aller directement à la partie usage de cet article.

Je possède la version 3.4.0 installée depuis les dépôts d'Ubuntu 14.04.2 LTS et je n'ai pas Pip d'installé. O_o Est-ce normal ? De plus en installant Pip avec easy_install, comme le conseille l'article, comment faire pour que ce soit bien Pip pour la version de python 3.4 qui soit installé ? Faut-il que j'installe python-setuptools ou python3-setuptools ?

Et enfin, installez-vous les libs dans votre dossier personnel ou avec sudo ?

Merci de votre aide !

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Auteur du sujet

Le problème c'est qu'il y a plein de façon d'installer Pip3… Ça me parait vraiment très mal foutu. Avec

1
sudo apt-get install python3-pip

Il m'est impossible d'installer un package :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
sudo pip3 install tweepy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip3')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 351, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2363, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2088, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name 'IncompleteRead'

L'installation avec easy_install3 c'est n'importe quoi, ça me met plein de message à chaque fois..

J'aime pas Pip et j'ai l'impression que je suis le seul…

Merci de ta réponse!

Édité par Wizix

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Auteur du sujet

Merci ça semble fonctionner beaucoup mieux. Deux nouveaux problèmes :

1
2
3
4
5
6
7
8
9
sudo pip3 install tweepy -U
The directory '/home/louis/.cache/pip/log' or its parent directory is not owned by the current user and the debug log has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/louis/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/louis/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already up-to-date: tweepy in /usr/local/lib/python3.4/dist-packages
Requirement already up-to-date: requests-oauthlib>=0.4.1 in ./.local/lib/python3.4/site-packages (from tweepy)
Requirement already up-to-date: requests>=2.4.3 in ./.local/lib/python3.4/site-packages (from tweepy)
Requirement already up-to-date: six>=1.7.3 in ./.local/lib/python3.4/site-packages (from tweepy)
Requirement already up-to-date: oauthlib>=0.6.2 in ./.local/lib/python3.4/site-packages (from requests-oauthlib>=0.4.1->tweepy)

Il me dit que mes dossiers personnels n'appartiennent pas à sudo, ce qui est normal. Mais je suis obligé de lancer Pip avec sudo non ?

Ensuite, on fait un petit test :

1
2
3
4
5
6
7
8
import tweepy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/tweepy/__init__.py", line 16, in <module>
    from tweepy.auth import OAuthHandler, AppAuthHandler
  File "/usr/local/lib/python3.4/dist-packages/tweepy/auth.py", line 9, in <module>
    from requests_oauthlib import OAuth1Session, OAuth1
ImportError: No module named 'requests_oauthlib'

En gros c'est le bazar, j'ai requests_oauthlib qui est installé avec sudo mais je ne l'ai pas sur mon compte personnel. Donc quand je fais un pip install requests_oauthlib sans sudo il me dit que je n'ai pas les autorisations nécessaires pour l'installer… Très bien. Je rajoute donc le flag --user, sudo pip3 install --user requests_oauthlib (qui permet de l'installer sur mon compte) mais là il me dit qu'il est déjà installé ! O_o

Je ne comprend plus rien, et j'espère ne pas vous avoir embrouillé…

Édité par Wizix

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0

En fait, tu peux très bien utiliser pip sans sudo, c'est ce qu'on fait généralement. Utiliser pip avec sudo sans –user, c'est censé installer l'egg dans le système (accessible à tous les programmes), sans le sudo et avec l'user, ça l'installe dans tes répertoires perso (ls ~/.local/lib/python3.4). L'avantage, c'est que tu peux créer des environnements avec des versions précises de bibliothèques pour chaque utilisateurs, et avec d'autres outils (virtualenv en particulier) même pour chaque programme.

Sauf que si tu fais sudo pip3 install --user machin, tu l'installes dans /root/ et non pour ton système.

+2 -0
Auteur du sujet

Donc si j'ai bien compris ce que tu m'as dit, je dois faire pip3 install tweepy --user ? Bah… Il n'aime pas ça :(

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Collecting tweepy
  Downloading tweepy-3.3.0-py2.py3-none-any.whl
Collecting requests-oauthlib>=0.4.1 (from tweepy)
  Using cached requests_oauthlib-0.5.0-py2.py3-none-any.whl
Collecting requests>=2.4.3 (from tweepy)
  Using cached requests-2.7.0-py2.py3-none-any.whl
Collecting six>=1.7.3 (from tweepy)
  Using cached six-1.9.0-py2.py3-none-any.whl
Collecting oauthlib>=0.6.2 (from requests-oauthlib>=0.4.1->tweepy)
  Using cached oauthlib-0.7.2.tar.gz
Installing collected packages: requests, oauthlib, requests-oauthlib, six, tweepy
  Exception:
  Traceback (most recent call last):
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/basecommand.py", line 246, in main
      status = self.run(options, args)
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/commands/install.py", line 352, in run
      root=options.root_path,
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/req/req_set.py", line 693, in install
      **kwargs
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/req/req_install.py", line 817, in install
      self.move_wheel_files(self.source_dir, root=root)
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/req/req_install.py", line 1018, in move_wheel_files
      isolated=self.isolated,
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/wheel.py", line 138, in move_wheel_files
      name, user=user, home=home, root=root, isolated=isolated
    File "/usr/local/lib/python3.4/dist-packages/pip-6.1.1-py3.4.egg/pip/locations.py", line 236, in distutils_scheme
      i.finalize_options()
    File "/usr/lib/python3/dist-packages/setuptools/command/install.py", line 30, in finalize_options
      _install.finalize_options(self)
    File "/usr/lib/python3.4/distutils/command/install.py", line 365, in finalize_options
      self.create_home_path()
    File "/usr/lib/python3.4/distutils/command/install.py", line 590, in create_home_path
      os.makedirs(path, 0o700)
    File "/usr/lib/python3.4/os.py", line 227, in makedirs
      makedirs(head, mode, exist_ok)
    File "/usr/lib/python3.4/os.py", line 237, in makedirs
      mkdir(name, mode)
  PermissionError: [Errno 13] Permission denied: '/home/louis/.local/lib/python3.4'

J'ai pourtant fait un chmod 777 -R sur le dossier…

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0

Cette réponse a aidé l'auteur du sujet

ls -l /home/louis/.local/lib/python3.4 ? Il a sûrement été créé par l'utilisateur root, donc appartient au groupe root et l'utilisateur root (même si c'est bizarre que tu ne puisses pas écrire dedans).

A la limite, tu peux aussi le supprimer et laisser pip le recréer proprement, si tu n'as pas besoin de ce qu'il y a dedans. ;)

J'ai ça chez moi :

1
2
3
4
┌(alexandre@alexandre-portable)─(07:25  dim. mai 17)
└─(~)─(184 files, 6,6Gb)─> ls -l .local/lib/python3.4/
total 4
drwx------ 6 alexandre users 4096 17 mai   19:23 site-packages
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte