Как избежать «Разрешения отказа» при использовании pip с virtualenv

Я пытаюсь развернуть пакет Python с pip в виртуальной среде на машине Ubuntu, но столкнулся с проблемой, связанной с разрешением. Например:

 (TestVirtualEnv)test@testServer:~$ pip install markdown2 

заканчивается:

error: не удалось создать '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py': разрешение отклонено

Я не могу sudo , так как он будет устанавливать пакет по всему миру, а не внутри виртуальной среды. Я chown ed site-packages ; ls показывает только каталоги, связанные с easy_install , pip и setuptools , и ничего не связано с Markdown.

Как развернуть пакет в виртуальной среде с помощью pip не сталкиваясь с ошибками, связанными с правами доступа?

  • virtualenv, python и subversion
  • Как добавить путь к PYTHONPATH в virtualenv
  • Получение виртуальной env-ошибки python после установки Lion
  • Не удалось найти версию, удовлетворяющую требованию pytz
  • Почему `virtualenv` не может найти` pkg_resources`?
  • Проблема с virtualenv - не может активироваться
  • Как добавить virtualenv в путь
  • Почему список замороженных файлов «pkg-resources == 0.0.0»?
  • 6 Solutions collect form web for “Как избежать «Разрешения отказа» при использовании pip с virtualenv”

    Проблемы с разрешением virtualenv могут возникать, когда вы создаете virtualenv как sudo а затем работаете без sudo в virtualenv .

    Как выяснено в комментарии вашего вопроса, решение здесь состоит в том, чтобы создать virtualenv без sudo чтобы иметь возможность работать (особенно писать) в нем без sudo .

    Решение:

    Если вы создали virtualenv как root, выполните следующую команду:

     sudo chown -R your_username:your_username path/to/virtuaelenv/ 

    Вероятно, это поможет решить вашу проблему.

    ура

    Я не создал свой virtualenv, используя sudo. Поэтому ответ Себастьяна не касался меня. Мой проект называется utils . Я проверил каталог utils и увидел это:

     -rw-r--r-- 1 macuser staff 983 6 Jan 15:17 README.md drwxr-xr-x 6 root staff 204 6 Jan 14:36 utils.egg-info -rw-r--r-- 1 macuser staff 31 6 Jan 15:09 requirements.txt 

    Как вы можете видеть, utils.egg-info принадлежит root не macuser . Вот почему это дало мне permission denied ошибку. Мне также пришлось удалить /Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link как он был создан также root . Я сделал pip install -e . снова после их удаления, и это сработало.

    В моем случае я использовал mkvirtualenv , но не сказал, что буду использовать python3. Я получил эту ошибку:

     mkvirtualenv hug pip3 install hug -U .... error: could not create '/usr/lib/python3.4/site-packages': Permission denied 

    Он работал после указания python3:

     mkvirtualenv --python=/usr/bin/python3 hug pip3 install hug -U 

    Вы не активировали виртуальную среду перед использованием pip.

    Попробуйте:

     $(your venv path) . bin/activate 

    И затем используйте файл pip -r requirements.txt в основной папке

    Несмотря на то, что ваша оболочка демонстрирует virtualenv, она активируется, подтверждая ее с помощью which python . Разрешенное разрешение может возникать при использовании глобального питона вместо вашего виртуального python. Всегда используйте source для активации venv.

    Python - лучший язык программирования в мире.