Ошибка: среда /Users/myuser/.virtualenvs/iron не содержит сценарий активации - PullRequest
5 голосов
/ 16 февраля 2020

Я работаю python 3.7.6 на macOS Catalina версии 10.15.1, и я пытаюсь установить и настроить virtualenvwrapper, который я установил с pip3 install virtualenvwrapper.

У меня есть следующее строки в моем .bash_profile:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/Users/maxcarey/Library/Python/3.7/bin/virtualenv
export WORKON_HOME=$HOME/.virtualenvs 
source /Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh

Это шаги конфигурации, из которых я следовал: { ссылка }. Как и другие учебные пособия ( как этот )

Итак, вы можете видеть, что я пытаюсь указать эти переменные экспорта в нужном месте, в моем терминале, вывод which python3 is /usr/local/bin/python3 Вывод which virtualenv: /Users/maxcarey/Library/Python/3.7/bin/virtualenv. Вывод which virtualenvwrapper.sh равен /Users/maxcarey/Library/Python/3.7/bin/virtualenvwrapper.sh

. Вот проблема: когда я запускаю: mkvirtualenv iron, чтобы создать новую виртуальную среду (в данном случае называемую iron), вывод команды:

созданная виртуальная среда за 193 мс CPython3Posix (dest = / Users / maxcarey / .virtualenvs / iron, clear = False, global = False) с сеялкой FromAppData pip = последний setuptools = последний диск = последний app_data_dir = / пользователи / maxcarey / Библиотека / Поддержка приложений / virtualenv / seed-v1 via = копировать virtualenvwrapper.user_scripts создание /Users/maxcarey/.virtualenvs/iron/bin/predeactivate ОШИБКА: среда '/Users/maxcarey/.virtualenvs/iron' не содержит активацию script.

Вы видите, что виртуальная среда действительно создана, однако я получаю сообщение об ошибке, в котором говорится, что сценарий активации отсутствует. Однако, когда я перехожу на ~/.virtualenvs, я действительно вижу сценарии активации. Вот вывод tree внутри новой папки iron/local/:

└── local
    └── bin
        ├── activate
        ├── activate.csh
        ├── activate.fish
        ├── activate.ps1
        ├── activate.xsh
        ├── activate_this.py
        ├── easy_install
        ├── easy_install-3.7
        ├── easy_install3
        ├── pip
        ├── pip-3.7
        ├── pip3
        ├── python -> /Library/Developer/CommandLineTools/usr/bin/python3
        ├── python3 -> python
        ├── python3.7 -> python
        ├── wheel
        ├── wheel-3.7
        └── wheel3

Действительно, кажется, что есть сценарии активации. Поэтому я озадачен тем, почему я получаю ошибку сценария активации (которая также появляется при запуске workon iron). Я попытался просто уничтожить и воссоздать виртуальную среду с помощью rmvirtualenv iron, которая работает, однако при повторном создании среды я все еще получаю ту же ошибку. Спасибо

Ответы [ 5 ]

8 голосов
/ 19 февраля 2020

Я бегу на распбианском попойке с Python 3.7.3. Я столкнулся с той же проблемой: «ОШИБКА ... нет сценария активации». Я попытался ответить @Lombax, но это не сработало.

Однако я заметил, что установленная версия virtualenvwrapper была 5.0.0. Я проверил на PyPi , и он все еще в версии 4.8.4. Поэтому я удалил virtualenv и virtualenvwrapper: sudo pip3 uninstall virtualenv virtualenvwrapper.

Затем я переустановил оба и указал версию: sudo pip3 install virtualenv virtualenvwrapper=='4.8.4' Я получил свой .bashr c, в котором я добавил параметры:

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export PATH=/usr/local/bin:$PATH
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

И теперь mkvirtualenv test работает , Не уверен, что это ошибка в версии 5.x virtualenvwrapper, тем временем это обошло меня стороной, надеюсь, это поможет.

4 голосов
/ 02 марта 2020

У меня было то же сообщение об ошибке, когда я использовал mkvirtualenv на новом RPI4. Я добавил эти строки в свой .bashrc, и это устранило проблему для меня:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin  # <== This line fixed it for me

Это вариант ответа из @maxmcmahon выше, но с настройкой VIRTUALENVWRAPPER_ENV_BIN_DIR в "bin". Мне не нужно было менять версии ни virtualenv, ни virtualenvwrapper; текущие версии, установленные по умолчанию, были в порядке.

2 голосов
/ 24 февраля 2020

Мое решение состояло в том, чтобы добавить export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin к моему файлу запуска оболочки после того, как был вызван скрипт virtualenvwrapper.sh.

Я выяснил это исправление, посмотрев на источник и увидев, что он создавал сценарий activate в usr/local/bin, но сценарий virtualenvwrapper.sh почему-то искал просто bin.

Моя полная конфигурация запуска оболочки теперь такова:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=usr/local/bin
0 голосов
/ 06 апреля 2020

Появляется ошибка, потому что созданная виртуальная среда не активирована.
Не паникуйте c, вам просто нужно активировать ее, выполнив определенную команду.
Для меня после выполнения $mkvirtualenv cv -p python3, виртуальный env создан, но не активирован.
После того, как вы введете указанную выше команду source /home/pi/.virtualenvs/cv/bin/activate, она активирует переменную виртуальной среды.
Это сработало для меня.
Теперь моя командная строка выглядит следующим образом:

(cv) pi@raspberrypi:~ $
0 голосов
/ 17 февраля 2020

Я только что нажал на это, понижение моей версии virtualenv до 20.0.3 позволило мне обойти эту проблему.

pip3 uninstall virtualenv && pip3 install 'virtualenv==20.0.3'

...