Я пытаюсь установить django на уже существующий виртуальный сервер.
Следуя инструкциям, указанным на сайте pip-install Вот, Я запустил следующее из SSH.
name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install django
Однако в нижней части установки я вижу следующее:
creating /usr/local/lib/python2.7/dist-packages/django
error: could not create '/usr/local/lib/python2.7/dist-packages/django': Permission denied
Похоже, он пытается установить его в глобальный каталог. У меня нет привилегий sudo. Я что-то здесь делаю не так?
Обновление: $ PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Извините за опоздание на год! У меня была та же проблема, и я ее исправил, я не знаю, изменили ли вы имя каталога после создания виртуальной среды, хотя я это сделал. Если так, то вот что я сделал.
1.) deactivate
ваш v-env. После исправления вам необходимо перезапустить v-env, так что можно также deactivate
сейчас. право?
2.) Теперь, поскольку мы создали v-env по другому пути, мы должны изменить статические переменные пути в этих файлах.
Чтобы pip работал, вам не нужно этого делать, но я все равно это делаю. bin/activate
, bin/activate.csh
, bin/activate.fish
bin/pip
, bin/pip2
, bin/pip2.7
bin/easy_install
, bin/easy_install2.7
3.) Чтобы pip работал, вы должны исправить интерпретатор python в файле pip, у него также есть статическое расположение интерпретатора, установленное virtualenv в процессе создания.
4.) Чтобы easy_install заработал? Вы угадали, исправьте местоположение переводчика.
Я надеюсь, что это помогло всем, кто будет читать это в будущем. Извините OP за опоздание.
У меня была такая же проблема.
Я удалил виртуальную среду и создал новую, что решило проблему.
Наверное, не тот ответ, на который вы надеялись, но поскольку он единственный ...
Вызов sudo pip
вызовет глобальный пип, а не пип в вашем virtualenv. Активируйте / работайте в своей среде, затем просто позвоните pip
не sudo pip
, это может решить вашу проблему, как и мою.
Что ж, без административных привилегий вы очень ограничены в том, что можете делать. Если вам не разрешено повышать свой уровень или запрашивать привилегии, лучший способ, который я нашел для этого, - это создать другую среду, создать файл requirements.txt, загрузить все необходимые вам пакеты на свой компьютер (django), которые будут также находится в вашем файле требований, и он должен работать.
Была такая же проблема. В моем случае причина заключалась в том, что созданный виртуальный env был для python2.7 (по умолчанию), но я использовал pip3 для установки пакета. pip3 не присутствовал в моем virtualenv, поэтому по умолчанию использовался глобальный. Для меня исправление заключалось в использовании
virtualenv flask --python=python3
чтобы создать env.
Я столкнулся с той же проблемой, вызванной переименованием пользователя. Ответ Криспи совершенно правильный. И моё решение может быть удобнее.
наборы:
1. Введите путь к корзине виртуальной среды, например cd ~/virenv_dir/bin
2. Переименуйте все файлы в этом каталоге с помощью команды sed. sed -i 's/old_name/new_name/' *
В моем случае я определил два псевдонима (чтобы преодолеть некоторые другие проблемы в версии Python по умолчанию):
alias pip='/usr/bin/pip3'
alias python='/usr/bin/python3'
И это вызывало те же симптомы:
[Errno 13] Permission denied: '/usr/lib/python3.6/site-packages'
Удаление псевдонимов решило проблему (до или после создания virtualenv)