当前位置: 首页 > 知识库问答 >
问题:

Python脚本正在寻找系统环境,即使虚拟环境已激活

广宏远
2023-03-14

在视窗和蟒蛇 3.9x 中运行 VS 代码

我创建了一个新的项目文件夹,并为此项目创建了一个新的虚拟环境。我创建的第一个脚本是一个 .ipynb 文件(jupyter 笔记本),它工作正常。当我将脚本导出到.py文件时,它在第一行代码上生成错误:

< code >从pynput导入键盘

模块未发现错误: 没有名为“pynput”的模块

pynput库安装在这个虚拟环境中,这就是. ipynb文件运行良好的原因。当我查看VS Code的右下角时,我可以看到虚拟环境已激活:

终端提示符前面加上(proj_env)。当我运行<code>pip-list</code>时,我可以看到pynput包已安装。它没有安装在系统环境中,这就是为什么我猜测脚本试图使用系统环境,但我可能错了。

我错过了什么?

从评论中描述的测试来看,这可能与Windows CMD窗口(运行虚拟环境)如何检查脚本想要导入的包的某些路径与vs Code如何检查某些路径之间的差异有关?

共有1个答案

步弘和
2023-03-14

弄清楚了这个问题,当我问这个问题时我不太理解,以及一个(那个?)解决方案。如果这个答案中的任何内容不正确,请纠正(并教育)我,谢谢。

在VSCode中,“运行代码”(使用代码运行器扩展名)和“运行Python文件”(这在终端中运行文件)之间存在差异。播放按钮将使用上次运行的其中任何一个(打开播放按钮旁边的下拉框)。

我遇到了与此用户相同的问题:运行代码与在VSCODE的终端中运行Python文件

项目的设置。json文件指定“python.defaultInterpreterPath”,该路径指向虚拟环境的python.exe。因此,当我在终端中运行.py文件时,只会找到安装在虚拟环境(而不是全局/系统环境)中的包。

但是Run Code使用Code-Runner,它默认为全局环境的python.exe,因此找不到仅在虚拟环境中的包。解决方案是指定Code-Runner应该使用哪个环境,通过将其添加到settings.json文件:"code-runner.executorMap ": { "python": "\"$pythonPath\"$fullFileName",}由于我的settings.json文件已经指定了虚拟环境的python解释器,因此此代码片段将告诉Code-Runner使用相同的python解释器来执行代码。

 类似资料:
  • 我做了一个虚拟环境,我可以在命令提示符下激活它,但它不能用my_venv2\脚本\activate.bat激活它,我也不能在py魅力的终端中激活它

  • 我已经创建了一个Python虚拟环境,并通过执行以下操作来激活它: 将提示转换为: 现在,每当我运行一个python包或尝试安装一个时,系统似乎忽略了它在虚拟环境中的事实,并在系统范围内执行操作: 当我尝试安装不在系统上的新软件包时,也会发生同样的情况;它将它们安装到系统文件(即/usr/bin)而不是虚拟环境中。 我的虚拟环境怎么了?如何让它忽略系统文件并在环境中执行所有操作? 我看过这个问题,

  • 不熟悉在虚拟环境中运行Python,会弄乱Django,无法激活虚拟环境。 在过去的4个小时里,试图在本地终端/VS代码上激活虚拟环境(venv),但运气不佳。 避免了“sudo pip install virtualenv”,因为我试图避免以root用户身份安装和使用不同的目录路径等。 使用缓存的virtualenv-20.0.31-py2.py3-none-any.whl(4.9 MB)收集v

  • python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 安装 virtualenv $ pip install virtualenv 配置 pip 安装第

  • 我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。 据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为

  • 问题内容: 从代码移动到新机器(可能运行不同的OS)相对简单并且给出相同结果的意义上来说,主要的工作之一就是确保代码的可移植性。 来自Python背景,我习惯了虚拟环境的概念。与所需软件包的简单列表一起使用时,这可以确保安装的软件包和库在任何计算机上都可用,而不会引起太多麻烦。当然,这不能保证- 不同的操作系统都有自己的缺点和特点-但这可以为您提供95%的解决方案。 R中是否存在这样的东西?即使它