pip3 установить временную строку

Я пытаюсь установить библиотеку timestring в python3.5 в Ubuntu 16.04 с помощью команды: pip3 install timestring

Получение этой ошибки:

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'

Я не уверен, что именно не так. Как я могу установить библиотеку временных рядов?

2 ответа

Он пытается установить в системный каталог, и у вашего пользователя нет прав для этого.

У вас есть 2 варианта:

  1. Устанавливать локально, обычно в virtualenv. Смотрите здесь: http://docs.python-guide.org/en/latest/dev/virtualenvs/
  2. Установите глобально с помощью sudo, чтобы у вас были права root: sudo pip install timestring

Лично я предпочитаю вариант 1, и держать зависимости каждого проекта изолированными в venv, но это зависит от вас.

Глядя на след, pip3 пытается создать каталог в /usr/local/lib/python3.5/dist-packages но у него нет прав для этого, потому что вы, вероятно, не запускались pip3 с sudo, Лучший способ установить timestring хотя стоит избегать sudo в целом и использовать virtualenv вместо. Следующий код работал для меня:

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

После того, как вы закончили с написанием кода для проекта, запустите deactivate деактивировать virtualenv.

Другие вопросы по тегам