Bash: mkvirtualenv: команда не найдена

Следуя инструкциям Doug Hellman virtualenvwrapper post, я все равно не смог запустить тестовую среду.

[[email protected] ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[[email protected] ~]$

Следует отметить, что я использую WORKON_HOME, который не находится в моем $HOME. Я пробовал искать /usr/local/bin/virtualenvwrapper.sh, как показано в virtualenvwrapper документации по установке, но он не существует.

Я запускаю CentOS 6 и python 2.6.6, если это имеет значение.


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"

Ответ 1

Решение 1:

По какой-то причине virtualenvwrapper.sh установлен в /usr/bin/virtualenvwrapper.sh вместо /usr/local/bin.

Ниже в моем .bash_profile работает...

source "/usr/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"

Моя установка работает нормально без источников virtualenvwrapper_bashrc

Решение 2:

В качестве альтернативы, как упоминалось ниже, вы могли бы использовать вероятность того, что virtualenvwrapper.sh уже находится в вашей оболочке PATH и просто введите source `which virtualenvwrapper.sh`

Ответ 2

Пытаться:

source 'which virtualenvwrapper.sh'

Обратные пометки - это подстановка команд - они берут все, что распечатывает программа, и помещают это в выражение. В этом случае "which" проверяет $ PATH, чтобы найти virtualenvwrapper.sh и выводит путь к нему. Затем сценарий читается оболочкой через источник.

Если вы хотите, чтобы это происходило каждый раз, когда вы перезапускаете вашу оболочку, то, вероятно, лучше сначала получить вывод из команды "which", а затем поместить строку "source" в вашу оболочку, что-то вроде этого:

echo "source/path/to/virtualenvwrapper.sh" >> ~/.profile

^ Это может немного отличаться в зависимости от вашей оболочки. Кроме того, будьте осторожны, чтобы не использовать одиночный символ>, так как это обрезает ваш ~/.profile: -o

Ответ 3

У меня была такая же проблема на OS X 10.9.1 с python 2.7.5. Нет проблем с WORKON_HOME для меня, но мне пришлось вручную добавить source "/usr/local/bin/virtualenvwrapper.sh" в ~/.bash_profile (или ~/.bashrc в unix) после запуска pip install virtualenvwrapper

Ответ 4

Предпосылки для выполнения этой команды -

1) pip (рекурсивный аббревиатура P ip I nstall P ython) - это система управления пакетами, используемая для установки и управления пакетами программного обеспечения написанный на Python. Многие пакеты можно найти в Индексе пакетов Python (PyPI).

sudo apt-get install python-pip

2) Установите виртуальную среду. Используется для создания виртуальной среды, для установки пакетов и зависимостей нескольких проектов, изолированных друг от друга.

sudo pip install virtualenv

3) Установить оболочку виртуальной среды О виртуальной оболочке env

sudo pip install virtualenvwrapper

После установки необходимых компонентов необходимо создать виртуальную среду для создания виртуальной среды. Ниже приведены шаги -

1) установите каталог виртуальной среды в переменной пути - export WORKON_HOME=(directory you need to save envs)

2) source /usr/local/bin/virtualenvwrapper.sh -p $WORKON_HOME

Как уже упоминалось @Mike, источник `which virtualenvwrapper.sh` или which virtualenvwrapper.sh может использоваться для поиска файла virtualenvwrapper.sh.

Лучше всего поставить выше двух строк в ~/.bashrc, чтобы избежать выполнения вышеуказанных команд каждый раз, когда вы открываете новую оболочку. Это все, что вам нужно для создания среды с помощью mkvirtualenv

Точки, о которых нужно помнить -

  • В Ubuntu вам может потребоваться установить virtualenv и virtualenvwrapper с правами root. Просто префикс команды выше с помощью sudo.
  • В зависимости от процесса, используемого для установки virtualenv, путь к virtualenvwrapper.sh может отличаться. Найдите подходящий путь, запустив $find/usr -name virtualenvwrapper.sh. Настройте линию в вашем .bash_profile или .bashrc script соответственно.

Ответ 5

Так как я только что прошел путь, я постараюсь написать ответ, который хотел бы получить два часа назад. Это для людей, которые не хотят просто копировать и вставлять решение

Во-первых: вам интересно, почему копирование и вставка путей работает для одних людей, а для других - нет? ** Основная причина, решения отличаются - разные версии Python, 2.x или 3.x. На самом деле существуют разные версии virtualenv и virtualenvwrapper, которые работают с python 2 или 3. Если вы используете python 2, установите так:

sudo pip install virutalenv
sudo pip install virtualenvwrapper

Если вы планируете использовать Python 3, установите соответствующие версии Python 3

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

Вы успешно установили пакеты для своей версии Python и все настроено, верно? Ну попробуйте. Введите workon в свой терминал. Ваш терминал не сможет найти команду (workon - это команда virtualenvwrapper). Конечно не будет. Workon - это исполняемый файл, который будет вам доступен только после загрузки/создания файла virtualenvwrapper.sh. Но в официальном руководстве по установке вы уже рассмотрели этот вопрос, верно? Просто откройте ваш .bash_profile и вставьте следующее, оно написано в документации:

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

Особенно полезна команда source/usr/local/bin/virtualenvwrapper.sh, так как команда, похоже, загружает/источник желаемого файла virtualenvwrapper.sh который содержит все команды, с которыми вы хотите работать, например, workon и mkvirtualenv. Но да, нет. Следуя официальному руководству по установке, вы, скорее всего, получите сообщение об ошибке из первоначального сообщения: mkvirtualenv: command not found. Все еще никакой команды не найдено, и вы все еще расстроены. Так в чем здесь проблема? Проблема в том, что virtualenvwrapper.sh - это не то, что вы ищете сейчас. Краткое напоминание... вы смотрите здесь:

source /usr/local/bin/virtualenvwrapper.sh

Но есть довольно простой способ найти нужный файл. Просто введите

which virtualenvwrapper

на ваш терминал. Это будет искать ваш PATH для файла, так как очень вероятно, что он находится в какой-то папке, которая включена в PATH вашей системы.

Если ваша система очень экзотическая, нужный файл будет скрыт за пределами папки PATH. В этом случае вы можете найти путь к virtalenvwrapper.sh с помощью команды оболочки find / -name virtualenvwrapper.sh

Ваш результат может выглядеть примерно так: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh Поздравляем. You have found your missing file! , Теперь все, что вам нужно сделать, это изменить одну команду в вашем .bash_profile. Просто измените:

source "/usr/local/bin/virtualenvwrapper.sh"

чтобы:

"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"

Поздравляю. Virtualenvwrapper теперь работает в вашей системе. Но вы можете сделать еще одну вещь, чтобы улучшить свое решение. Если вы нашли файл virtualenvwrapper.sh с помощью команды which virtualenvwrapper.sh вы знаете, что он находится внутри папки PATH. Поэтому, если вы просто напишите имя файла, ваша файловая система будет считать, что файл находится внутри папки PATH. Так что вам не нужно выписывать полный путь. Просто введите:

source "virtualenvwrapper.sh"

Это оно. Вы больше не разочарованы. Вы решили свою проблему. С надеждой.

Ответ 6

Используйте эту процедуру для создания виртуального env в Ubuntu

Шаг 1 Установите пункт

   sudo apt-get install python-pip

Шаг 2 Установите virtualenv

   sudo pip install virtualenv

Шаг 3 Создайте каталог для хранения ваших virtualenvs (я использую ~/.virtualenvs)

   mkdir ~/.virtualenvs

или используйте эту команду для установки конкретной версии python в env

virtualenv -p /usr/bin/python3.6 venv

Сет 4

   sudo pip install virtualenvwrapper

шаг 5

   sudo nano ~/.bashrc

Шаг 6 Добавьте этот двухстрочный код в конец файла bashrc.

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

шаг 7 откройте новый терминал (рекомендуется)

Шаг 8 Создайте новый virtualenv

  mkvirtualenv myawesomeproject

Шаг 9 Чтобы загрузить или переключиться между virtualenvs, используйте команду workon:

  workon myawesomeproject

шаг 10, чтобы выйти из вашего нового virtualenv, используйте

 deactivate

и убедитесь, что с помощью pip vs pip3

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

cd ~/demos

установить env

python3 -m venv my-project-env

Затем активируйте виртуальную среду с помощью следующей команды:

source my-project-env/bin/activate

Ответ 7

В Windows 7 и Git Bash это помогает мне:

  1. Создайте файл ~/.bashrc (в вашей домашней папке пользователя)
  2. Добавить строку export WORKON_HOME = $ HOME/.virtualenvs (вы должны создать эту папку, если она не существует)
  3. Добавьте источник строки "C:\Program Files (x86)\Python36-32\Scripts\virtualenvwrapper.sh" (измените путь для вашего virtualenvwrapper.sh)

Перезапустите команду git bash и mkvirtualenv, теперь она будет работать хорошо.

Ответ 8

Используя Git Bash в Windows 10 и Python36 для Windows, я обнаружил файл virtualenvwrapper.sh в немного другом месте, и его запуск решил проблему

source virtualenvwrapper.sh 
/c/users/[myUserName]/AppData/Local/Programs/Python36/Scripts

Ответ 9

Решил мою проблему в ОС Ubuntu 14.04 с python 2.7.6, добавив две строки ниже в файлы ~/.bash_profile (или ~/.bashrc в unix).

источник "/usr/local/bin/virtualenvwrapper.sh"

export WORKON_HOME = "/opt/virtual_env/"

И затем выполнение обеих этих строк на терминал.

Ответ 10

В Windows 10 для создания виртуальной среды я заменяю "pip mkvirtualenv myproject" на "mkvirtualenv myproject", и это хорошо работает.