python virtualenv不会通过窗口中的另一个进程持久化

python virtualenv不会通过窗口中的另一个进程持久化,python,python-3.x,batch-file,window,virtualenv,Python,Python 3.x,Batch File,Window,Virtualenv,假设我有一个虚拟的python环境调用example\u venv,我有一个可执行的调用应用程序,我需要在特定的python环境中启动它,如何做到这一点 在linux中,我有以下lanch.sh脚本: #!/bin/bash . example_venv/script/activate ./application ^这很有魅力。我的应用程序中的任何python进程都可以从example\v加载库 在窗口中,以下是我在lanch.bat文件中的内容: example_venv/Script/ac

假设我有一个虚拟的python环境调用
example\u venv
,我有一个可执行的调用
应用程序
,我需要在特定的python环境中启动它,如何做到这一点

在linux中,我有以下
lanch.sh
脚本:

#!/bin/bash
. example_venv/script/activate
./application
^这很有魅力。我的应用程序中的任何python进程都可以从
example\v
加载库

在窗口中,以下是我在
lanch.bat
文件中的内容:

example_venv/Script/activate.bat & application.exe %*
这将启动应用程序,但是如果我在应用程序中运行任何python进程,则python进程似乎对
示例\u venv

一无所知请尝试一下:

引用答案,

.bat文件的许多(太多)怪癖之一是,如果启动另一个.bat文件,它不知道返回到哪里。 您需要明确地将其称为:

我相信这会解决你的问题

另一方面,您还可以直接在venv中引用python可执行文件,而无需激活环境:

%~dp0venv\scripts\python.exe [arguments] **

**假设批处理文件与venv目录位于同一目录中。%~dp0指正在运行的批处理文件的当前目录。

批处理文件中应该有两行。1)
调用example\v/Script/activate.bat
。2)
application.exe%*
%~dp0venv\scripts\python.exe [arguments] **