Errno 13 Отказано в доступе при запуске virtualenv - PullRequest
0 голосов
/ 24 декабря 2018

При попытке создать virtualenv с использованием установленного на brew Python 2.7 в Mac OS XI выдается следующая ошибка:

Could not install packages due to an EnvironmentError: 
  [Errno 13] Permission denied: '/lib'

Полный вывод:

▶ virtualenv ./virtualenv               
New python executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python2.7
Also creating executable in /Users/alexharvey/git/home/sam-test/virtualenv/bin/python
Installing setuptools, pip, wheel...                    

  Complete output from command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel:
  Looking in links: /usr/local/lib/python2.7/site-packages, /usr/local/lib/python2.7/site-packages/virtualenv_support, /usr/local/lib/python2.7/site-packages/virtualen
v_support                                                                                                                                                             
Collecting setuptools                                                       
  Using cached https://files.pythonhosted.org/packages/37/06/754589caf971b0d2d48f151c2586f62902d93dc908e2fd9b9b9f6aa3c9dd/setuptools-40.6.3-py2.py3-none-any.whl      
Collecting pip                                                          
Collecting wheel                                                                                                                                                      
  Using cached https://files.pythonhosted.org/packages/ff/47/1dfa4795e24fd6f93d5d58602dd716c3f101cfd5a77cd9acbe519b44a0a9/wheel-0.32.3-py2.py3-none-any.whl           
Installing collected packages: setuptools, pip, wheel                                                                                                                 
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/lib'
Consider using the `--user` option or check the permissions.                                                                                                          

----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
    sys.exit(main())                                                                                                                                                  
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 762, in main                                                                                      
    symlink=options.symlink,
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 1015, in create_environment
    install_wheel(to_install, py_executable, search_dirs, download=download)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 968, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)                                                                                              
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 854, in call_subprocess
    raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command /Users/alexharvey/gi...ualenv/bin/python2.7 - setuptools pip wheel failed with error code 1

Я вижу, что вопросыкак это часто задавали здесь раньше (например, здесь ), и, тем не менее, в ответах с поправкой на голосование рекомендуется использовать sudo, что явно неверно.

Примечание. Я следовал рекомендациям на этой странице здесь: Эффективное использование python в Mac OS X .

Как это исправить (без использования sudo)?

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Как указано в комментарии, возникла проблема с пользовательским файлом конфигурации Distutils.Этот файл может находиться в одном из трех мест ( ref ):

  • system : <prefix>/lib/pythonver/distutils/distutils.cfg
  • personal: $HOME/.pydistutils.cfg
  • локальный : setup.cfg

Я тем временем создал setup.cfg согласно этому SO-ответу здесь с содержанием:

[install]
prefix=

Я уже не могу вспомнить, почему я посоветовался с этим ответом или почему я положил туда этот файл, но после того, как я удалил его, virtualenv снова заработал нормально, и я 'У меня больше нет проблем.

0 голосов
/ 24 декабря 2018

Установка чего-либо в глобальный /lib, очевидно, требует привилегий root.

Вы можете устанавливать модули в папку своего пользователя, не используя sudo, просто добавьте аргумент --user при установке любого пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...