Віртуаленвська команда не знайдена


207

Я не міг дістатися 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

Відповіді:


336

Якщо ви встановили його

pip install virtualenv

Вам потрібно бігти

sudo /usr/bin/easy_install virtualenv

що ставить його в /usr/local/bin/ .

Вищенаведений каталог за замовчуванням повинен бути у вашому PATH; в іншому випадку відредагуйте .zshrc(або. bashrc) відповідно.


1
завжди раді допомогти @nguns
Tal Avissar

на екземплярі AWS EC2 Amazon Linux, якщо ви намагаєтеся шифрувати certbot, спробуйте це рішення. Це була єдина пропозиція, яка вирішила мою проблему virtualenv.
emrahgunduz

2
Ти найкращий!
leon wu

6
вихідsudo: /usr/bin/easy_install: command not found
Ced

2
Дякую за це - але мені б хотілося, щоб я знав, що таке чаклунство працює тут - що робить "easy_install", що звичайний піп не робить? тобто чому це працює?
Томас Кімбер

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
Я перейшов до вашого рішення і отримав повідомлення "... Якщо виконувати піп із судо, ви можете захотіти прапор судо -Н". Нарешті sudo -H pip install virtualenv зробив роботу для мене (на OS X), дякую
smudo78

1
що робити, якщо root не доступний на вашій машині?
користувач5359531

Вирішили проблему. Я здогадуюсь, що цей може замість цього зайти в глобальний рейтинг --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 за допомогою варіння.
TCSGrad

Я боровся з цим протягом тижнів, і це заважало моєму обмеженому часу працювати над проектом пітона, і це було єдиним рішенням для мене на роботі над 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
Він вирішує для мене ту саму проблему ... чому її не перевіряють як рішення?
manuele

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

Налаштування сим-ланки було все, що мені потрібно було зробити. спасибі.
Кірбі

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.w Установки зібраних пакетів: virtualenv

Тоді я отримав це:

Сценарій virtualenv встановлений у '/Users/brahim/Library/Python/2.7/bin', який не є на PATH. Подумайте про додавання цього каталогу до PATH або, якщо ви хочете придушити це попередження, використовуйте --no-warn-script-location.

яка чітко говорить про те, де він встановлений і що робити, щоб його отримати


2

Якщо ви використовуєте Linux, відкрийте свій термінал і введіть virtualenv наполовину та автозаповнюйте клавішу вкладки. Якщо немає автоматичного завершення, встановіть 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.
КарменА

1

це працює в ubuntu 18 і вище (не перевірено в попередніх версіях):

sudo apt install python3-virtualenv

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файлу просто використовуйте стандартний текстовий редактор, нано, мабуть, найпростіший в експлуатації. Більш просте рішення - використовувати команду 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. навігація до моєї цільової папки (де я хочу, щоб моя нова віртуальна середовище жила), тобто. / Користувачі / muUserName / Середовища /
  3. запустити команду, python -m virtualenv python27де python27 - це ім'я мого нового віртуального середовища
  4. Вище створили папку патону27 в моїй папці " Середовища" , і тоді я зміг запустити, 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.


0

У мене була дана проблема. Я вирішив це за допомогою цих двох команд, по-перше, встановити другу, це активувати env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Зауважте, що я використовую python3, ви можете змінити його на лише pythonте, що python3не вдалося . Дякую.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.