如何在Windows上自动启动virtualenv环境

时间:2014-11-21 17:48:47

标签: python virtualenv

有人可以给我一些关于在Windows上自动启动virtualenv应用程序的建议吗?我有一个在gunicorn上运行的小型Flask应用程序。它运行良好,但我如何投入生产?我不想手动进入并进入目录并键入activate然后键入gunicorn app:blog。如何使用virtualenv?这是我试过的脚本:

echo off
cd C:\Users\Darkn\Code\Python\flask-intro
venv\scripts\activate.bat
venv\scripts\waitress-serve --port=5000 app:app

前两行被执行,但最后一行没有做任何事情。

2 个答案:

答案 0 :(得分:0)

virtualenv的激活脚本给了我一些线索。诀窍是将virtualenv路径添加到系统路径。然后脚本可以进入项目目录并启动应用程序。

@echo off
set "VIRTUAL_ENV=C:\Users\Darkn\Code\Python\flask-intro\venv"
set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"
cd C:\Users\Darkn\Code\Python\flask-intro
waitress-serve --port=5000 app:app

答案 1 :(得分:0)

我使用了Darc Nawg的回答,使用带有以下xml配置文件的WinSW安装Windows服务。

<service>
    <id>com.taxicabmanager.django</id>
    <name>Taxicab Manager Django</name>
    <description>Industry standard Django and GraphQL components of Taxicab Manager.</description>
    <env name="VIRTUAL_ENV" value="C:\source\taxicab-manager-django\env-taxicab-manager-django"/>
    <env name="PATH" value="%VIRTUAL_ENV%\Scripts;%PATH%"/>
    <workingdirectory>C:\source\taxicab-manager-django</workingdirectory>
    <executable>waitress-serve</executable>
    <arguments>--port=2003 --url-scheme=http api.wsgi:application</arguments>
    <logmode>rotate</logmode>
    <delayedAutoStart/>
    <onfailure action="restart" />
</service>