web-dev-qa-db-fra.com

pip3 installe timestring

J'essaie d'installer la bibliothèque timestring dans python3.5 sur ubuntu 16.04 en utilisant la commande: pip3 install timestring

Obtenir cette erreur:

Exception:
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.5/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/home/user/.local/lib/python3.5/site-packages/pip/commands/install.py", line 317, in run
    prefix=options.prefix_path,
  File "/home/user/.local/lib/python3.5/site-packages/pip/req/req_set.py", line 742, in install
    **kwargs
  File "/home/user/.local/lib/python3.5/site-packages/pip/req/req_install.py", line 831, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/home/user/.local/lib/python3.5/site-packages/pip/req/req_install.py", line 1032, in move_wheel_files
    isolated=self.isolated,
  File "/home/user/.local/lib/python3.5/site-packages/pip/wheel.py", line 346, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/home/user/.local/lib/python3.5/site-packages/pip/wheel.py", line 317, in clobber
    ensure_dir(destdir)
  File "/home/user/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/usr/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.5/dist-packages/pytz-2013b0.dist-info'

Je ne sais pas exactement ce qui ne va pas. Comment puis-je installer la bibliothèque timestring?

1
Chuck

Il essaie d'installer dans un répertoire système et votre utilisateur n'a pas les autorisations pour le faire.

Vous avez 2 options:

  1. Installez localement, généralement dans un virtualenv. Voir ici: http://docs.python-guide.org/en/latest/dev/virtualenvs/
  2. Installez globalement, avec Sudo pour que vous ayez les privilèges root: Sudo pip install timestring

Personnellement, je préfère l'option 1, et de garder les dépendances de chaque projet isolées dans un venv, mais cela dépend de vous.

1
roadmr

En regardant le traçage, pip3 tente de créer un répertoire dans /usr/local/lib/python3.5/dist-packages mais il n'est pas autorisé à le faire car vous n'avez probablement pas exécuté pip3 avec Sudo. La meilleure façon d'installer timestring est cependant d'éviter Sudo et d'utiliser virtualenv à la place. Le code suivant a fonctionné pour moi:

Sudo apt update && Sudo apt install virtualenv  # install virtualenv if you haven't
cd ~/<project directory>  # cd to your project directory
virtualenv venv -p python3  # create virtualenv named venv for Python 3
source venv/bin/activate  # activate virtualenv
pip install timestring

Une fois que vous avez terminé d'écrire du code pour le projet, exécutez deactivate pour désactiver virtualenv.

0
edwinksl