Почему пакет устанавливает пакет за пределы моей виртуальной среды?
После создания источника виртуальной среды я попробую
pip install -U --no-deps django-social-auth
и он возвращает:
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.6/dist-packages/django_social_auth-0.6.9-py2.6.egg-info/dependency_links.txt'
Почему он пытается писать за пределами virtualenv?
Ответы
Ответ 1
Я столкнулся с этой проблемой, когда переименовал каталог, содержащий мою виртуальную среду. Пылесос жесткого пути использовался уже не правильно.
Обновите shebang в pip script, чтобы указать на исполняемый файл python вашей виртуальной среды.
Ответ 2
На мой взгляд, либо вы выполняете пип, который не является частью виртуального, а вам, но интерпретатор python, который выполняется, не является частью виртуального. Убедитесь, что пип, который вы выполняете, является правильным с помощью which pip
и принудительно удаляет питон из virtualenv с помощью your_envdir/bin/python pip <arguments>
, а не просто вызывает простой пип.
Это странно, потому что если вы правильно активировали среду с помощью bin/activate, вы должны получить правильный пип. Вы уверены, что активированы с помощью . bin/activate
, а не sh bin/activate
? Это две разные вещи. Сработала ли подсказка?
Ответ 3
вы должны, вероятно, убедиться, что вы пипс от вашей виртуальной среды, так что sth. как
./env/bin/pip install -U --no-deps django-social-auth