команды virtualenvwrapper не работают

tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found
tow-81-235:Projects pessimisticoptimism$ sudo pip install virtualenvwrapper
Password:
Requirement already satisfied (use --upgrade to upgrade): virtualenvwrapper in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): virtualenv-clone in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Cleaning up...
tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found

Почему я получаю эту ошибку? У меня установлены virtualenv и virtualenvwrapper. Я хотел бы использовать mkvirtualenv и workon. Мне кажется странным, что virtualenv работает, а virtualenvwrapper нет.


person Desolate    schedule 02.09.2012    source источник


Ответы (7)


Во-первых, убедитесь, что вы устанавливаете с помощью sudo:

sudo pip install virtualenvwrapper

Во-вторых, добавьте следующие строки в ваш файл .bashrc (с nano ~/.bashrc):

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

3-й, перезагрузите свой профиль

source ~/.bashrc
person chirinosky    schedule 06.12.2012
comment
Работал на меня..! спасибо - person Nirav Dangi; 11.09.2014
comment
После того, как я закрою свой терминал. Когда я снова открываю, команда workon не работает ... появляется «команда не найдена», есть ли способ быть постоянно активным? так что я могу делать «source .venvs/app/bin/activate» каждый раз, когда я открываю свой терминал ?? - person ePascoal; 06.03.2015
comment
Привет @ePascoal, строки в .bashrc должны сделать изменения постоянными. Каждый раз, когда вы запускаете терминал, он считывает .bashrc текущего пользователя (при условии, что вы используете bash в качестве оболочки). Вы должны иметь возможность добавить workon app под 3-й строкой (`source ...) в вашем .bashrc, чтобы он автоматически активировался каждый раз. - person chirinosky; 07.03.2015
comment
ПОЛЬЗОВАТЕЛИ MAC — используйте .bash_profile вместо .bashrc, как предлагает ответ Уилла. - person Srini; 02.04.2016
comment
Чтобы сделать его постоянным, убедитесь, что вы добавляете две строки (export... и source...) в свой файл ~/.bahrc, а не только копируете и вставляете команды в терминал! - person learn2day; 10.09.2016
comment
кажется, эта проблема очень распространена. Почему авторы virtualenv не исправляют это навсегда? - person Kishor Pawar; 17.06.2017
comment
Привет @KishorPawar, virtualenvwrapper — это стандартный сценарий оболочки. Причина добавления его в .bashrc заключается в том, что он может создавать сопоставления виртуальной среды (т.е. mkvirtualenv) каждый раз, когда вы открываете терминал, без необходимости каждый раз вызывать скрипт самостоятельно. - person chirinosky; 18.06.2017
comment
Вот в чем мой вопрос, почему эти строки нельзя добавить в .bashrc только во время установки? - person Kishor Pawar; 18.06.2017

Сводка

Я на Mac, и мой ответ похож на ответ @Ramces, за исключением того, что он был с bash_profile. Я просто хочу немного уточнить, чтобы пользователи Mac знали, что существует множество разных профилей, включая:

  • .bashrc
  • .bash_profile
  • .профиль

Некоторые файлы, такие как .profile, не имеют приоритета над .bash_profile (если он существует) и будут игнорироваться. Если вы успешно выполните следующие шаги и заработаете виртуальную среду, но затем закроете свой терминал и «команда workon не найдена», вам необходимо настроить правильный профиль. Подробный ответ см. здесь

Этапы установки:

  1. sudo pip install virtualenv

    Устанавливает virtualenv (позволяет вам разделить ваши окружения)

  2. sudo pip install virtualenvwrapper

    Устанавливает virtualenvwrapper (позволяет использовать команду workon)

  3. nano ~/.bash_profile

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

    Перезагружает профиль. В дальнейшем вам нужен только шаг 5 (для создания новых сред) и шаг 6 (для запуска сред)

  5. mkvirtualenv my_env

    Это создает вашу виртуальную среду (это пример с «my_env»)

  6. workon my_env

    Это позволяет вам работать в определенной среде (в этом примере используется my_env).

person Will    schedule 13.05.2014
comment
Работал как шарм на моем компьютере. Спасибо :) - person Piyush Chauhan; 11.02.2015
comment
Я хочу запустить работу над my_env с помощью sudo. sudo workon my_env говорит workon: команда не найдена. Как это исправить? - person akm; 07.06.2017
comment
Привет, у меня проблема: мой файл virtualenvwrpper.sh не существует в /usr/local/bin/, он существует в /Library/Frameworks/Python.framework/Versions/3.8/bin/virtualenvwrapper.$ - person kd12345; 24.03.2021

После установки пакета virtualenvwrapper с помощью pip вам также необходимо выполнить некоторую инициализацию/установить свои настройки. См. введение в документации по virtualenvwrapper.

Наиболее важным для поиска команд должно быть использование сценария virtualenvwrapper в вашей оболочке. В документах он упоминается как

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

Вам все еще нужно настроить путь к вашей настройке. Я предполагаю, что для вашего Mac будет:

$ source /Library/Python/2.7/site-packages/virtualenvwrapper.sh
person zpea    schedule 02.09.2012
comment
Если вы уже находитесь в виртуальной среде, файл virtualenvwrapper.sh находится в папке bin этой виртуальной среды, как показано ниже { source ~/mypythonenv/bin/virtualenvwrapper.sh } - person Uma Senthil; 13.04.2018

Простой процесс

  1. sudo apt-get install python-pip (если pip не установлен)
  2. sudo pip установить virtualenv
  3. Создайте каталог для хранения ваших виртуальных файлов.

    mkdir ~/.virtualenvs

  4. sudo pip установить virtualenvwrapper

  5. Запустите следующую команду

    экспорт WORKON_HOME=~/.virtualenvs

  6. Добавьте virtualenvwrapper.sh в .bashrc Добавьте эту строку в конец ~/.bashrc, чтобы загружались команды virtualenvwrapper.

    . /usr/local/bin/virtualenvwrapper.sh

  7. вы найдете файл .bashrc.sh в домашнем каталоге, нажав ctrl+h. если нет, используйте команду find, чтобы найти .bashrc.sh "file ls -la ~/ | more"

  8. Нажмите эту команду

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

  9. Нажмите эту команду

    источник ~/.bashrc

person Wagh    schedule 25.06.2015

Похоже, у вас есть несколько установок Python на вашем компьютере, и virtualenvwrapper не указывает на правильный Python.

Узнайте, какой Python использует virtualenvwrapper. Вы получаете подсказку, где искать с which virtualenvwrapper.sh (в данном случае /usr/local/bin):

> /usr/local/bin/virtualenvwrapper.sh

Если вы не получили никакого возврата здесь, убедитесь, что вы используете правильный пункт при установке. Команда pip может ссылаться на другой Python, чем вы ожидаете. Проверьте свой каталог usr/local/bin на наличие ссылок на точки (pip, pip2, pip2.7, pip3, pip3.5). Легко перепутать системы pip, pip2 и pip2.7.

После того, как вы нашли местоположение Python, добавьте/обновите все пути в вашем .profile:

export WORKON_HOME=$HOME/venv
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2
source /usr/local/bin/virtualenvwrapper.sh

Наконец перезагрузите свой профиль: source ~/.profile

person Bruno    schedule 30.10.2017
comment
Почему вы используете $HOME/Envs, а не $HOME/venv? Также я получаю сообщение об ошибке: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh: fork: Ресурс временно недоступен. Любая подсказка, что происходит, пожалуйста? - person chikitin; 05.10.2019
comment
Envs — произвольный выбор. Мне больше нравится venv, так как все строчные буквы :) Re fork: Resource temporarily unavailable возможно, вы достигли максимального количества процессов в вашей системе (либо для всей системы, либо для каждого пользователя, либо вам не хватило памяти). - person Bruno; 07.10.2019

Я на Mac OS X 10.9.2 и для меня virtualenvwrapper.sh файл присутствовал в

/usr/local/bin/virtualenvwrapper.sh

Поэтому я просто скопировал это в файл ~/.profile:

source /usr/local/bin/virtualenvwrapper.sh

И теперь мой файл ~/.profile выглядит примерно так:

# MacPorts Installer addition on 2014-02-23_at_17:28:39: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

source /usr/local/bin/virtualenvwrapper.sh

И теперь я могу использовать virtualenvwrapper команды без каких-либо проблем.

person Deep    schedule 25.04.2014

Пользователи дистрибутива Python Anaconda (из Continuum) должны учитывать, что

sudo pip install virtualenvwrapper

будет знать об анаконде. Итак, если вы

which python

это должно дать вам представление о том, куда указать ваш virtualenv в ваших файлах конфигурации .bashrc и/или .profile.

person c.gutierrez    schedule 24.07.2014
comment
pip может ссылаться на другой python. which pip и pip -V дадут вам лучшее представление о том, с каким python pip связан и, следовательно, с virtualenvwrapper. - person Bruno; 30.10.2017