Команда Virtualenv не найдена


208

Я не мог добраться virtualenvдо работы, несмотря на различные попытки. Я установил virtualenvна MAC OS X, используя:

pip install virtualenv

и также добавил PATHв мой .bash_profile. Каждый раз, когда я пытаюсь выполнить virtualenvкоманду, она возвращает:

-bash: virtualenv: command not found

Каждый раз, когда я бегу pip install virtualenv, он возвращает:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Я понимаю, что в Mac, virtualenvдолжны быть правильно установлены в

/usr/local/bin

Это virtualenvдействительно установлено в /usr/local/bin, но всякий раз, когда я пытаюсь выполнить virtualenvкоманду, команда не найдена. Я также попытался запустить virtualenvкоманду в каталоге /usr/local/bin, и она дает мне тот же результат:

-bash: virtualenv: command not found

Это те пути, которые я добавил в свой .bash_profile

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Есть ли обходные пути для этого? Почему это так?


1
Попробуйте добавить символическую ссылку на исполняемый файл virtualenv в / usr / local / bin
Джастин Фэй,

Где я должен создать символическую ссылку? Это все еще не работает, несмотря на то, что я пытался добавить символическую ссылку в каталог, где я хочу использовать virtualenv @justinfay
Arial

2
если посмотреть на пути выше, это может быть что-то вроде замены последнего пути в команде на путь к исполняемому файлу virtualenv:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Джастин Фэй,

2
у меня получилось добавить символическую ссылкуln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Ализа

Не работает в lubuntu
c24b

Ответы:


337

Если вы установили его с

pip install virtualenv

Вам нужно бежать

sudo /usr/bin/easy_install virtualenv

который вставляет это /usr/local/bin/.

Вышеупомянутый каталог по умолчанию должен быть в вашем PATH; в противном случае отредактируйте ваш .zshrc(или. bashrc) соответственно.


1
всегда рад помочь @nguns
Таль Ависсар

на примере AWS EC2 с Amazon Linux, если вы пытаетесь использовать Let's Encrypt certbot, попробуйте это решение. Это было единственное предложение, которое решило мою проблему virtualenv.
emrahgunduz

2
Ты лучший!
Леон Ву

6
выходнойsudo: /usr/bin/easy_install: command not found
Ced

3
Спасибо вам за это - но я хотел бы знать, что колдовство здесь работает - что делает "easy_install", чего не делает обычный pip? т.е. почему это работает?
Томас Кимбер

153

Я столкнулся с той же проблемой, и вот как я решил ее:

  1. Проблема возникла у меня, потому что я установил virtualenv через pip как обычный пользователь (не root). pip установил пакеты в каталог~/.local/lib/pythonX.X/site-packages
  2. Когда я запускал pip от имени пользователя root или с правами администратора (sudo), он устанавливал пакеты в /usr/lib/pythonX.X/dist-packages. Этот путь может быть другим для вас.
  3. Команда virtualenv распознается только во втором сценарии
  4. Итак, чтобы решить проблему, сделайте, pip uninstall virtualenvа затем переустановите ее sudo pip install virtualenv(или установите как root)

8
Я последовал вашему решению и получил сообщение «... Если вы выполняете pip с помощью sudo, вам может потребоваться флаг -H sudo». Наконец-то sudo -H pip install virtualenv сделала всю работу за меня (на OS X), спасибо
smudo78

1
Что делать, если root не доступен на вашей машине?
user5359531

Решил проблему. Я думаю, что это может пойти в глобальный каталог вместо --user.

Эта проблема также возникает, когда сам pip установлен в ~ / .local / SOME_PATH. Я cpэд все в site-packagesреж INTO /usr/lib/pythonx.x/site-packagesи rm -rfэд исходный каталог.
Yoon

47

Самый простой ответ. Просто:

pip uninstall virtualenv

а потом:

pip install virtualenv

Или вы можете установить virtualenv sudo, в этом случае:

pip install --user virtualenv

Вот Это Да! Это то, что помогло мне. Я пользуюсь pyenvкстати
race_carr

Это путь для Mac OS X с использованием brew.
TCSGrad

Я боролся с этим неделями, и это мешало моему ограниченному времени работать над проектом на Python, и это было единственное решение для меня на Mac. Спасибо!
HellaDev

37

На Ubuntu 18.04 LTS я тоже столкнулся с такой же ошибкой. Сработала следующая команда:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvне существует
Леонард

Работал как шарм на 18.04, спасибо
Нищая Шарма

Проголосовал за продвижение aptв качестве преемника apt-get.
седобородый

24

У меня была такая же проблема на Mac OS X El Capitan .

Когда я установил virtualenvтак, у sudo pip3 install virtualenvменя не было virtualenvпод моей командной строкой.

Я решил эту проблему, выполнив следующие действия:

  1. Удалить предыдущие установки.
  2. Переключитесь на учетную запись суперпользователя перед virtualenvустановкой, позвонивsudo su
  3. Установить virtualenvпо телефонуpip3 install virtualenv
  4. Наконец, вы должны иметь доступ virtualenvкак к учетной записи, так userи к super userучетной записи.

15

Выяснить проблему

Попробуйте установить с --verboseфлагом

pip install virtualenv --verbose

Вывод будет выглядеть примерно так

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

Из результатов мы видим, что он установлен на, /home/manos/.local/bin/virtualenvтак что давайте удостоверимся, что PATH включает это.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

В моем случае мы можем ясно видеть, что /home/manos/.local/binэто полностью отсутствует, и поэтому оболочка не может найти программу.

Решения

Мы можем решить это разными способами:

  1. Мы можем установить напрямую в конкретный каталог, используя параметры pip (не рекомендуется).
  2. Создайте соответствующие символические ссылки в /usr/local/binили аналогичные.
  3. Добавить /home/manos/.local/binв PATH.
  4. Установить как sudo для установки непосредственно в /usr/local/bin

Два последних варианта, вероятно, являются наиболее разумными. Последнее решение является самым простым, поэтому я просто покажу решение 3.

Добавьте это в ~ / .profile:

PATH="$PATH:$HOME/.local/bin"

Выйдите и снова, и это должно работать.


1
Это сработало отлично. Это должен быть принятый ответ и +1 для подробного объяснения
Дэвид Программист

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


работал для меня без 3. python -m virtualenv <имя>
ofer.sheffer

11

В моем случае я побежал pip show virtualenvза информацией о пакете virtualenv. Я буду выглядеть примерно так, а также покажу расположение пакета:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

От этого захватите часть местоположения до .localчасти, которая в данном случае является /home/user/.local/. Вы можете найти команду virtualenv под /home/user/.local/bin/virtualenv.

Затем вы можете запустить команды, как /home/user/.local/bin/virtualenv newvirtualenv.


10

Я была такая же проблема. Я использовал следующие шаги, чтобы заставить его работать

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

Вот и все. Это начало работать.

Использование sudo -H----> sudo -H: установить HOMEпеременную для домашнего каталога целевого пользователя.


1
Это исправляет для меня точно такую ​​же проблему ... почему это не проверено как решение?
Мануэль

9

Вы сказали, что каждый раз, когда вы запускаете, pip installвы получаете Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Что вам нужно сделать, это следующее:

  1. Сменить каталог (перейти к тому, где virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Если вы сделаете это, lsвы увидите, что сценарий тамvirtualenv.py
  3. Запустите скрипт так: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Надеюсь это поможет. Мой совет - больше исследовать вену. Вот хороший ресурс: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

У меня были проблемы, потому что я использовал apt для установки пакета python-virtualenv. Чтобы заставить его работать, мне пришлось удалить этот пакет apt-get remove python-virtualenvи установить его с pip install virtualenv.


1
Что оставляет вопрос: почему, черт возьми, мой пакет python3-virtualenv сломан?
Дмитрий Д.Б.

6

Убедитесь, что virtualenvэто исполняемый файл.

Если virtualenvне найден, запуск полного пути ( /usr/local/bin/virtualenv) должен работать.


5

Я думаю, что ваша проблема может быть решена с помощью простой символической ссылки , но вы создаете символическую ссылку на неправильный файл . Насколько я знаю , virtualenv установлен в /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv(вы можете изменить номера для вашей версии Python) , так что команды для создания символической ссылки должна быть:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

все, что мне нужно было сделать, это установить ссылку на sym. Спасибо.
Кирби

5

На Ubuntu 18.4 на AWS установка с pip работает некорректно. С помощью apt-get install проблема была решена для меня.

sudo apt-get install python-virtualenv

и проверить

virtualenv --version

4

Те же проблемы: Так что я просто сделал pip uninstall virtualenv Тогда pip install virtualenv

pip install virtualenv --user

Сбор virtualenv Использование кэшированных https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl Установки собранных пакетов: virtualenv

Тогда я получил это:

Сценарий virtualenv устанавливается в /Users/brahim/Library/Python/2.7/bin, который отсутствует в PATH. Попробуйте добавить этот каталог в PATH или, если вы предпочитаете отключить это предупреждение, используйте --no-warn-script-location.

который четко говорит, где он установлен и что нужно сделать, чтобы получить его


2

Если вы используете Linux, откройте свой терминал и наполовину введите virtualenv и выполните автозаполнение клавишей Tab. Если нет автоматического завершения, установите virtualenv в вашей системе, выполнив:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Теперь вы можете перейти туда, где вы хотите создать свой проект и сделать:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

Я обновился до Python 3.7. Я продолжал пытаться установить virtualenv, он всегда будет возвращать сообщение «Ошибка: не удалось найти версию, которая удовлетворяет требованию virtualenv (из версий: нет)». Я где-то читал, что из определенной версии Python 3.x он поставляется с установленным virtualenv, но попытка создать простую виртуальную среду не сработала, она выдаст ошибку, что она не знает команду virtualenv. Но это сработало с помощью следующей команды из вашего ответа: "virtualenv venv --python = python3.7". Ничего другого не было сделано ранее. В случае, если это помогает кому-либо еще. Среда MacOS.
CarmenA

1

это работает в Ubuntu 18 и выше (не тестировалось в предыдущих версиях):

sudo apt install python3-virtualenv

1

У меня была такая же проблема в течение длительного времени. Я решил это, выполнив эти две команды, первая - установить, вторая - активировать env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Обратите внимание, что я использую python3, вы можете изменить его на просто, pythonесли python3не удается. Спасибо.


0

Выполните следующие основные шаги для настройки виртуальной среды

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

нам нужно обновить наш ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Этот ~/.bashrcфайл является просто сценарием оболочки, который Bash запускает всякий раз, когда вы запускаете новый терминал. Вы обычно используете этот файл для установки различных конфигураций. В этом случае мы устанавливаем переменную среды с именемWORKON_HOME будет указывать на каталог, в котором находятся наши виртуальные среды Python. Затем мы загружаем любые необходимые конфигурации из virtualenvwrapper.

Для обновления вашего ~/.bashrcфайла просто используйте стандартный текстовый редактор, nano, вероятно, самый простой в использовании. Более простое решение - использовать команду cat и полностью избегать редакторов:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

После редактирования нашего файла ~ / .bashrc нам необходимо перезагрузить изменения:

source ~/.bashrc

Теперь, когда мы установили virtualenv и virtualenvwrapper, следующим шагом является создание виртуальной среды Python - мы делаем это с помощью команды mkvirtualenv.

mkvirtualenv YOURENV


0

Я прохожу онлайн-курс Анжелы Ю по iOS, и у меня возникала та же проблема, плюс я получал ошибку «Отказано в доступе» 13, когда пытался запустить virtualenv --python=/{myPath} {newVirtualEnvName}

Я решил это:

  1. переключение на пользователя sudo sudo su
  2. переход к папке назначения (где я хочу, чтобы мой новый виртуальный env жил), т.е. / Users / muUserName / Среды /
  3. команда run, python -m virtualenv python27где python27 - это имя моей новой виртуальной среды
  4. выше созданная папка pathon27 в моей папке Environments , а затем я смог запустить, source python27/bin/activateчтобы запустить мой virtualenv

0

Простой ответ заключается в том, что если вы не являетесь пользователем sudo, как я, не был таковым. Вам необходимо добавить путь к папке bin ( /home/myusername/.local/bin). В общем, командная строка ищет, какой из этих путей является командой, которую вы ввели.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

здесь он будет искать local/binсначала тогда /usr/binи потом /bin.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.