Попытка установить discord.py, но закончиться с ошибками разрешения

Я просто переключил свою ОС на Ubuntu 16.04 (в первый раз когда-либо с помощью Linux).

Мне удалось установить Python 3.6 после этого руководства: http://docs.python-guide.org/en/latest/starting/install3/linux/

И я установил зернышко после ответа, который был найден на этом потоке переполнения стека: https://stackoverflow.com/questions/42662104/how-to-install-pip-for-python-3-6-on-ubuntu-16-10

Все работало как очарование, однако, когда я пытаюсь установить discord.py использование модуля python3.6 -m pip install -U discord.py, Я брошен ошибка разрешения на всем, что она пытается установить.

Collecting discord.py
Collecting aiohttp<1.1.0,>=1.0.0 (from discord.py)
Collecting websockets<4.0,>=3.1 (from discord.py)
  Using cached websockets-3.4-cp36-cp36m-manylinux1_x86_64.whl
Collecting chardet (from aiohttp<1.1.0,>=1.0.0->discord.py)
  Using cached chardet-3.0.4-py2.py3-none-any.whl
Collecting multidict>=2.0 (from aiohttp<1.1.0,>=1.0.0->discord.py)
  Using cached multidict-3.1.3-cp36-cp36m-manylinux1_x86_64.whl
Collecting async-timeout (from aiohttp<1.1.0,>=1.0.0->discord.py)
  Using cached async_timeout-1.3.0-py3-none-any.whl
Installing collected packages: chardet, multidict, async-timeout, aiohttp,    websockets, discord.py
  Found existing installation: chardet 2.3.0
    Uninstalling chardet-2.3.0:
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.6/shutil.py", line 544, in move
    os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist- packages/chardet' -> '/tmp/pip-kssx4kah-uninstall/usr/lib/python3/dist- packages/chardet'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/pip/basecommand.py", line    215, in main
status = self.run(options, args)
  File "/usr/local/lib/python3.6/dist-packages/pip/commands/install.py",  line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python3.6/dist-packages/pip/req/req_set.py", line  778, in install
    requirement.uninstall(auto_confirm=True)
  File "/usr/local/lib/python3.6/dist-packages/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/usr/local/lib/python3.6/dist-packages/pip/req/req_uninstall.py", line 115, in remove
   renames(path, new_path)
  File "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py",    line 267, in renames
    shutil.move(old, new)
  File "/usr/lib/python3.6/shutil.py", line 556, in move
    rmtree(src)
  File "/usr/lib/python3.6/shutil.py", line 480, in rmtree
_    rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.6/shutil.py", line 438, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib/python3.6/shutil.py", line 436, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
PermissionError: [Errno 13] Permission denied: 'jpcntx.py'

Это - только одно из сообщений об ошибках, которые я получаю, я также получаю другие такой как

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/websockets'

и

PermissionError: [Errno 13] Permission denied: /usr/local/lib/python3.6/dist-packages/async_timeout

а также

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/multidict-3.1.3.dist-info'
0
задан 9 September 2017 в 04:31

1 ответ

Не торопитесь для чтения немного о том, как Ubuntu и Linux в целом работают, та команда должна была быть:

sudo -H pip install  <package_name>

отметьте несколько вещей:

  1. , Если Вы делаете pip --version или pip3 --version, Вы будете видеть, какая версия Python идет с тем pip команда:

    pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
    
  2. , Если Вы делаете pip2 --version затем, мы видим python 2.*:

    pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    
  3. Python уже там, так должен переустановить его.

  4. В использовании Ubuntu pip и pip3 python 3.*, но pip2 использование python 2.*

Важный:

-H, --set-home

             Request that the security policy set the HOME environment variable to the home directory specified by the target user's password database
             entry.  Depending on the policy, this may be the default behavior.
0
ответ дан 2 November 2019 в 07:19

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

Похожие вопросы: