python virtualenv不会通过窗口中的另一个进程持久化
假设我有一个虚拟的python环境调用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
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] **