Редактировать # 2 Решение найдено; Смотри ниже.VirtualEnv/Pip пытается установить пакеты по всему миру
Я пишу небольшое приложение в Flask с помощью VirtualEnv. Это далеко не первый раз, когда я это сделал, но на этот раз и два раза, когда я пытался, я столкнулся с той же проблемой. Когда я . flask/bin/activate
и попробуйте установить пакет - например, pip install flup
- он постоянно устанавливается глобально, а не в VirtualEnv. Странно, это происходит только после того, как я deactivate
, и это делает это непоследовательно.
именно, я, кажется, чтобы быть в состоянии установить все, что нужно, если я все это сразу, а иногда даже после того, как я deactivate
, но после определенного интервала он просто перестает работать и он начинает пытаться установить в мой глобальный Python site-packages
. (Естественно, он также просит разрешения, когда он это делает. Прежде чем я понял, что происходит, я попытался заставить его с sudo
, думая, что я случайно навлек на себя sudo virtualenv flask
-е или что-то в этом роде, но нет, это глобальный по какой-то другой причине.)
Я не делаю ничего смешного, как использование аргумента --system-site-packages
, и я ничего не изменил в своей конфигурации VirtualEnv, прежде чем он начнется. Впервые это случилось, я записал это на случайную случайность. Теперь это становится серьезно раздражающим, потому что я не в настроении удалять все и переустанавливать его каждый раз, или молиться, чтобы я подумал обо всем, что мне нужно в сценарии начальной загрузки.
Я не включаю никаких сообщений об ошибках, потому что они не являются (или не кажутся) особенно ценными; это просто requirement already satisfied
кричать на меня снова и снова.
Редактировать # 1 Я немного разбираюсь в проблеме, но у меня все еще нет решения. Я создал новый проект Flask в том же каталоге, cd
, включил его, активировал его VirtualEnv и т. Д., Затем побежал which pip
. Это был новый пик VirtualEnv - правильный пип. Я деактивировал, cd
-в моем оригинальном проекте, активировал VirtualEnv и запустил which pip
. Он выплевывает другой проект - новый - пип. I rm -r
- новый тестовый проект, вернувшийся к оригиналу, снова запустил which pip
, и он выплюнул /usr/local/bin/pip
. Ой. ОК.
Редактировать # 2: Решение Возможно, я не понял точной причины, но я нашел решение. Сами скрипты bin/activate
и bin/pip
были каким-то образом изменены, возможно, из-за случайного запуска двух VirtualEnvs одновременно (?). Может быть, это просто совпадение, что это произошло три раза подряд после того, как никогда не случалось. Не знаю.
Я cat
-ed activate
и конечно же, на линии 42, был
VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask2/flask"
вместо
VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask/flask"
Я изменил его, снова побежал which pip
, и получил правильный результат. Пробовал установку, получил трассировку стека, которая привела меня к bin/pip
, и обнаружил, что ее shebang был неправ. Изменил его на правильном пути, и все работает отлично.
Почему у него есть разрешение на установку на ваш глобальный питон при запуске без sudo? или он пытается и не работает? –
Это попытка и неудача, но я не могу понять, почему она пытается в первую очередь. –
Просто запустите виртуальный пипс с его полным путем (т. Е. Не полагайтесь на поиск исполняемого пути), и вам даже не нужно активировать среду. Он будет поступать правильно. –