Сценарий Python, который активирует virtualenv, а затем запускает другой сценарий Python?
В Windows Vista мне нужен скрипт, который запускает скрипт activate
(для активации virtualenv) в:
C:\Users\Admin\Desktop\venv\Scripts\
А позже, в виртуальной среде, запускается manage.py runserver
в папке:
C:\Users\Admin\Desktop\helloworld\
Как мне быть? Какие модули я должен использовать?
Ответы
Ответ 1
Вы можете активировать свой virtualenv, а затем запустить сервер, используя файл bat.
Скопируйте этот script в файл и сохраните его с расширением .bat(например, runningerver.bat)
@echo off
cmd /k "cd /d C:\Users\Admin\Desktop\venv\Scripts & activate & cd /d C:\Users\Admin\Desktop\helloworld & python manage.py runserver"
Затем вы можете просто запустить этот файл bat (просто дважды щелкните), чтобы запустить сервер
Ответ 2
runserver.bat:
CALL [your path]\Scripts\activate.bat
python manage.py runserver
Ответ 3
Если вы хотите напрямую вызвать virtualenv'ed Python, вы можете сделать что-то вроде этого:
C:\Users\Admin\Desktop\venv\Scripts\bin\python.exe manage.py runserver
Двойная проверка местоположения python.exe
в вашей папке virtualenv - не помните, как она вышла из моей головы. Этот Python связывается с virtualenv и по умолчанию использует его site-packages
.
Ответ 4
Вместо использования строк можно использовать символ вставки (^), как описано в этом вопросе: длинные команды разбиваются на несколько строк в пакетном файле (.bat) Windows Vista
Например
cmd /k cd path/to/activate ^
activate.bat
pip uninstall --yes package ^
pip install git+https://git.server.com/user/[email protected]/branch ^
deactivate
откроет venv, удалит и переустановит ветку Git-репозитория. Это полезный шаблон для автоматизации развертывания кода в venv.
Ответ 5
Используйте вызов, чтобы войти в вашу среду, а затем у вас есть ваша командная строка для того, что вы пожелаете.
@echo off
echo script for opencv environment with anaconda
cd ..\Environment\PATH
call activate my-env
cd ..\example\path
call python execution_script.bat
echo done
Ответ 6
Таким образом, приведенные выше ответы могут быть устаревшими, или они не работают в моей корпоративной среде. Если приведенные выше ответы не работают для вас, попробуйте отключить вызов python, когда вы пытаетесь запустить свой файл, он уже был вызван при вызове activ.bat. Вот что работает для меня, чтобы запустить hello.py в среде Anaconda, и я попробовал то же самое в простой jane virtualenv:
cmd /k "cd C:\Users\%USERNAME%\AppData\Local\Continuum\Anaconda3\Scripts & activate.bat & cd C:\Users\%USERNAME%\Desktop & hello.py"
Ваш анаконда env может не иметь такой же путь, как мой.