Я пытаюсь установить django на virtualenv, который уже существует.
Следуя инструкциям , приведенным на веб - сайте пип установить здесь , я побежал следующее из 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
python
installation
packages
virtualenv
pip
Люк Сапан
источник
источник
easy_install
?which easy_install
чтобы увидеть, используете ли вы свой virtualenv или системный.which pip
дает? И ты видишьpip
внутриmyenv.env/bin/
?Ответы:
Извините за ответ с опозданием на год! У меня была та же проблема, и я ее исправил. Я не знаю, изменили ли вы имя каталога после создания виртуальной среды, хотя я и сделал. Если так, то вот что я сделал.
1.)
deactivate
ваш v-env. После исправления вам нужно перезапустить v-env, так что, может быть, иdeactivate
сейчас. правильно?2.) Теперь, так как мы создали v-env по другому пути, мы должны изменить статические переменные пути в этих файлах.
Чтобы заставить работать пипс, вам не нужно этого делать, но я все еще делаю.
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 работать? Вы догадались, исправить местоположение переводчика.
Я надеюсь, что это помогло любому человеку, читающему это в будущем. Извините ОП, за опоздание.
источник
grep -rli '/path/to/old/env/bin' * | xargs -i@ sed -i 's/\/path\/to\/old\/env\/bin/\/path\/to\/new\/env\/bin/g' @
. источникУ меня была такая же проблема.
Я удалил виртуальную среду и создал новую, которая решила проблему.
Вероятно, не тот ответ, на который вы надеялись, но так как он единственный ...
источник
Ну, без административных привилегий вы очень ограничены в том, что вы можете сделать. Если вам не разрешено повышать себя или запрашивать привилегии, лучший способ, который я нашел для этого, - это создать другую среду, создать файл require.txt, загрузить все необходимые пакеты на свой компьютер (django), которые бы также находится в вашем файле требований, и он должен работать.
источник
Была такая же проблема. В моем случае причина была в том, что созданный виртуальный env был для python2.7 (по умолчанию), но я использовал pip3 для установки пакета. pip3 не присутствовал в моем virtualenv, поэтому он стал глобальным. Для меня исправить было использовать
создать окр.
источник
Я столкнулся с той же проблемой, вызванной переименованием пользователя. Криспи ответ полностью прав. И мое решение может быть более удобным.
setps:
1. Введите путь к корзине вашей виртуальной среды, например
cd ~/virenv_dir/bin
2. Переименуйте все файлы в этом каталоге с помощью команды sed.
sed -i 's/old_name/new_name/' *
источник
В моем случае я определил два псевдонима (чтобы преодолеть некоторые другие проблемы с версией Python по умолчанию):
И это вызывало те же симптомы:
Удаление псевдонимов решило проблему (до или после создания virtualenv)
источник
Вызов
sudo pip
будет вызывать глобальный pip, а не pip в вашем virtualenv. Активируйте / Работайте в своей среде, затем просто позвонитеpip
, нетsudo pip
, это может решить вашу проблему, как и моя.источник