Как избежать "отказано в доступе", когда с помощью pip в виртуальное окружение



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



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


завершается путем:




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




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



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

839   6  

6 ответов:

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

как выяснилось в комментарии вашего вопроса, решение здесь заключается в создать the virtualenv без sudo уметь работа (esp. пишите) в нем без sudo.

устранение:

Если вы создали виртуальное окружение пользователя 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.txt в вашей главной папке

при создании virtualenv если вы используете sudo каталог создается с корнем privileges.So при попытке установить пакет с пользователем, не являющимся пользователем sudo, у вас не будет разрешения на установку в него. Поэтому всегда создавайте virtualenv без sudo и устанавливайте без sudo.

вы также можете скопировать пакеты, установленные на глобальном python в virtualenv.

cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/

Comments

    Ничего не найдено.