首页 > 解决方案 > Windows中调用python脚本时自动打开虚拟环境

问题描述

这个问题以前曾被问过,但答案都是几年前的,我无法为我工作,所以我会很感激一些帮助。

问题很简单,真的:我有一个 python 脚本和一个虚拟环境,当我双击它或从另一个程序调用它时,我希望它在其中运行。我怎样才能做到这一点?

标签: pythonvirtualenv

解决方案


您必须将包目录地址添加到您的sys.path

sys.pathsys 模块中的内置变量。它包含解释器将在其中搜索所需模块的目录列表。

在脚本顶部添加下面的行,现在您可以双击脚本文件,一切都必须正常工作

import sys; sys.path.append("./<environment path>/Lib/site-packages")

这是一个简单的解决方案,但是正如sinoroc所说,这不是一个好的解决方案,因为在这种情况下,您使用的是系统解释器而不是虚拟环境解释器,所以如果事情没有按预期工作,我不会感到惊讶。


您也可以下载所需的所有软件包并将它们提取到单个文件夹中并将该文件夹添加到sys.path

首先使用以下命令下载您需要的软件包

pip download <package names> --dest <directory name>

例如:

pip download requests --dest packages

最后添加文件夹包含你的包到你的路径

import sys; sys.path.append("./<packages directory>")

推荐解决方案

最好的解决方案是为windows编写小批处理脚本或为linux编写shell脚本,自动激活虚拟环境,然后运行你的脚本

首先为 Windows 创建扩展名为.bat的文件,或者为 linux 创建扩展名为.sh的文件,然后在下面添加一行

对于.bat文件

<environment path>\Scripts\activate && python <script name>.py

对于.sh文件

source <environment path>/bin/activate && python <script name>.py

现在您可以单击此批处理脚本 * .bat文件或 shell 脚本 * .sh文件,一切正常


推荐阅读