首页 > 解决方案 > 如何让我的脚本使用我的虚拟环境而不是我的系统?

问题描述

使用 Windows,在文本编辑器 (Atom) 中执行时,我无法让我的 python 脚本使用我的虚拟环境。

我知道如何使用命令行让我的脚本使用我的虚拟环境(通过激活我的虚拟环境并运行脚本),但我希望能够在文本编辑器中工作。

我尝试包含 shebang#!/usr/bin/env python以向我的脚本指示使用虚拟环境(如此处所建议的那样,但 Windows 可能实际上不支持 shebang(来自此处此处)。我试图直接说明我的虚拟环境的路径,但不清楚如何做到这一点(我尝试了 的变体#!"C:\Users\...\my_project\venv\Scripts\python.exe"

请注意,我的文件结构是一个文件夹(my_project),其中包含两个文件夹venv(我的虚拟环境)和my_code(其中包含my_script.py)。

以下脚本在从命令行执行时打印来自我的虚拟环境的路径,但在从文本编辑器执行时打印来自我的系统的路径。此外,我已经全局安装了 sklearn,但没有在我的虚拟环境中安装,并且 sklearn 在从命令行执行时无法导入(根据需要),但在从文本编辑器执行时导入(不需要)。

#!/usr/bin/env python

import sys
print(sys.path)

from sklearn.cluster import KMeans

如何让我的脚本识别我想要使用的虚拟环境?

标签: pythonwindowsvirtualenvshebang

解决方案


您需要创建一个虚拟环境,然后激活它以便脚本使用虚拟环境。要在 atom 上执行此操作,请遵循本指南

遵循下面的引用应该可以从命令行完美地工作。(一旦激活,cd /path/to/script然后python myscript.py

从这里引用

要创建虚拟环境,请确定要放置它的目录,然后将 venv 模块作为具有目录路径的脚本运行:

python3 -m venv tutorial-env

创建虚拟环境后,您可以激活它。

在 Windows 上,运行:

tutorial-env\Scripts\activate.bat


推荐阅读