Сценарий Bash для определения источника виртуальной среды Python

При загрузке виртуальной среды Python я должен работать:

source venv/bin/activate

Я хочу псевдоним для этой команды, потому что я должен выполнить все это время. Таким образом, я поместил следующее в файл, названный "load.sh":

#!/bin/bash
source venv/bin/activate

И работал

chmod +x load.sh

Однако теперь, когда я выполняю./load.sh нет никакого эффекта. Мое подозрение - то, что слово "источник" может быть проблемой. Но я не знаю. Какие-либо идеи?Спасибо.

4
задан 9 August 2019 в 19:06

2 ответа

source venv/bin/activate команды изменяют load.shсреда. Когда load.sh концы, об этой среде забывают. Кроме того, это будет только работать, если Вы будете в $HOME каталог.

Я думаю, что Вы действительно хотите, должен добавить к Вашему ~/.bashrc:

alias venv="source $HOME/venv/bin/activate"

затем

venv

добьется цели.

3
ответ дан 2 December 2019 в 02:11

Другая альтернатива использует virtualenvwrapper.

Можно установить его использование pip install virtualenvwrapper (используйте pip3 для Python3).
После этого добавьте следующие строки в конец .bashrc файл:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh
export WORKON_HOME=~/.virtualenvs
export PIP_VIRTUALENV_BASE=~/.virtualenvs
export PIP3_VIRTUALENV_BASE=~/.virtualenvs

Сохраните и выйдите затем, необходимо перезагрузить .bashrc путем выполнения source ~/.bashrc (просто на этот раз).
После этого, каждый раз, когда Вы хотите создать ENV, работать mkvirtualenv <your_env_name>.
И если Вы хотите работать над ENV или переключиться между envs, работать workon <env_name>.
Если Вы хотите деактивировать ENV, работать deactivate.

1
ответ дан 2 December 2019 в 02:11

Другие вопросы по тегам:

Похожие вопросы: