Ошибка "virtualenv: команда не найдена", но место установки находится в PYTHONPATH

Это заставляло меня сходить с ума за последние 2 дня. Я установил virtualenv на свой Macbook с помощью pip install virtualenv. Но когда я пытаюсь создать новый virtualenv с помощью virtualenv venv, я получаю сообщение об ошибке "virtualenv: command not found".

Я использовал pip show virtualenv, и место установки было "Location:/usr/local/lib/python2.7/site-packages", но я не могу понять, где находится исполняемый файл. Я пробовал десятки других похожих сообщений, но эти решения не работают для меня.

Любые идеи, что здесь может быть неправильным?

Ответ 1

Единственный работоспособный подход, который я мог бы выяснить (с помощью @Gator_Python было сделать python -m virtualenv venv. Это создает виртуальную среду и работает как ожидалось.

У меня установлен пользовательский python и, возможно, почему-то по умолчанию для меня не работает.

Ответ 2

В macOS Мохаве
Сначала проверьте питон в пути.
python --version
Второй чек установлен.
pip --version
Если он не установлен.
brew install pip
Третья установка virtualenv
sudo -H pip install virtualenv

Ответ 3

Как уже упоминалось в комментариях, вы правильно установили модуль virtualenv в ожидаемой среде, так как python -m venv позволяет создавать virtualenv.

Тот факт, что virtualenv не является распознанной командой, является результатом того, что virtualenv.py не находится в вашей системе PATH и/или не является исполняемым. Коренной причиной могут быть устаревшие distutils или setuptools.

Вам следует попытаться найти файл virtualenv.py, убедитесь, что он выполним (chmod +x) и что его местоположение находится в вашей системе PATH. В моей системе virtualenv.py находится в папке ../Pythonx.x/Scripts, но это может быть другим для вас.

Ответ 4

Может быть, вы используете менеджер пакетов Anaconda? Если это так, то у него есть собственная система виртуальной среды, которую вы настраиваете следующим образом:

conda create --name venv

Ответ 5

У меня была такая же проблема (хотя на ubuntu), простое решение вместо того, чтобы делать pip install virtualenv, вы предшествуете похвалу " sudo ".

Небольшая проверка показывает причину этого исправления: enter image description here

pip install virtualenv пытается поместить исполняемый файл в /usr/local/bin чтобы его можно было вызывать из командной строки, но он не удался, потому что только root имеет права на запись в этот каталог

альтернативой является pip install --user virtualenv, вот несколько дальнейших чтений 1, 2

Ответ 6

Мне удалось вручную создать ссылку на файл location/virtualenv.py в /usr/local/bin, присвоить ему имя virtualenv и добавить в файл атрибут +x

➜  ~ pip show virtualenv
Name: virtualenv
Version: 16.6.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: [email protected]
License: MIT
Location: /home/prsadev/.local/lib/python2.7/site-packages
Requires: 


~ chmod +x /home/prsadev/.local/lib/python2.7/site-packages/virtualenv.py 
~ sudo ln -sf /home/prsadev/.local/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv

Ответ 7

Я пытался иметь virtualenv в случайном месте & столкнулся с той же проблемой на машине UBUNTU, когда я попытался запустить свой 'venv'. То, что решило мою проблему, было: -

$ virtualenv -p python3 venv

Также вместо использования $ activate попробуйте: - $ source activate Если вы посмотрите на скрипт активации (или $ cat activate), вы найдете то же самое в комментарии.

Ответ 8

Для Python 3

python3 -m virtualenv venv

Ответ 9

  1. Установите python package manager.
  2. Установите виртуальную среду, используя pip3 install virtualenv или pip install virtualenv.