python-3.x - VS 代码运行器在全局环境中执行,尽管设置为使用虚拟环境
问题描述
我设置了一个项目目录,其中包含一个导入请求模块的文件。然后使用 pipenv 创建了一个虚拟环境并安装了请求模块。在终端窗口中,我激活了虚拟环境并运行了文件。
在 VS Code 编辑器中,我选择了环境的解释器(使用正确的路径)并使用++ALT运行代码。它返回:CTRLN
没有名为“请求”的模块。
为了检查发生了什么,我使用import sys
and创建了一个文件print(sys.version, sys.executable)
。显然,Python 的全球版本已经运行。我做错了什么?
这是该项目的 setting.json 文件:
{
"python.pythonPath": "C:\\Users\\Periklis\\.virtualenvs\\Mosh_PyYelp-CK8YJ9nr\\Scripts\\python.exe"
}
解决方案
我通过以下方式解决了我的问题:
在全局用户文件settings.json 中,我手动定义了虚拟环境中 python 的路径。就我而言
{ "python.venvPath": "C:\Users\Periklis\.virtualenvs" }
这确保了可以从命令托盘“Python:选择解释器”中选择适当的解释器。
选择解释器后,所选虚拟环境的路径将显示在文件settings.json中,该文件位于项目文件夹的 .vscode 子文件夹中。就我而言
{"python.pythonPath": "C:\Users\Periklis\.virtualenvs\Mosh_PyYelp-CK8YJ9nr\Scripts\python.exe"}
为了确保在通过编辑器
(Alt + Ctrl +N)运行 python 文件时使用适当的解释器,我手动
将解释器的完整路径插入到文件 设置中的 code-runner.executorMap 部分。通过将路径复制到虚拟环境中的 python,在子文件夹 .vscode 中创建json 。就我而言:{ ... "code-runner.executorMap":{...., "python": "C:\Users\Periklis\.virtualenvs\Mosh_PyYelp- CK8YJ9nr\Scripts\python.exe", ...} }
现在项目文件夹中的每个 python 文件都在虚拟环境中执行。由于我是 VS Code 和一般编程的新手,我不确定这是否是最好的方法,但它确实有效。我很想听听其他选择。
推荐阅读
- javascript - 双循环是否有有效的方法?
- r - Adding ggsn::scalebar() causes a plot to be miss-aligned in a multi-panel figure
- php - Laravel Eloquent ORM - 选择两个关系都不存在的所有模型时,生成的 SQL 和查询构建器结果不匹配
- python - How to put a health bar over the sprite in pygame
- sql - How to update a table while joining based on a condition?
- c++ - C++ 简单文件 I/O 问题
- ios - 图像不仅在 iOS 模拟器中显示
- javascript - when back if previous page is x go another page framework7/cordova
- c# - Unity 游戏不适合安卓屏幕
- javascript - React Component Re-Renders when updating input using React Hooks