在使用pyenv的Visual Studio代码中,没有用于Mac OS的名为“numpy”的模块

j2cgzkjk  于 11个月前  发布在  Mac
关注(0)|答案(6)|浏览(120)

我对“麻木”有意见。
当我尝试在visual studio中运行我的main.py文件时,我收到了这个消息。

import numpy as np
ModuleNotFoundError: No module named 'numpy'
ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['python', '/Users/Bruker/Documents/Prosjektoppgave/PPO/main.py']' command failed.

字符串
(See以上错误)
我已经创建了一个虚拟环境,我使用的是3.8.12 ('mlp': conda),这也是我在终端上的环境。
我正在使用Macbook,并试图从Visual Studio代码中使用tensorflow,但代码在import numpy as np处停止。
如果我运行pip install numpy,我会收到以下消息:

Requirement already satisfied: numpy in /opt/homebrew/Caskroom/miniforge/base/envs/mlp/lib/python3.8/site-packages (1.22.2)


如果我逃跑

import sys
print("version: ", sys.executable)


我收到

version:  /opt/homebrew/Caskroom/miniforge/base/bin/python


我该怎么办?

weylhg0b

weylhg0b1#

其中一个问题取决于你如何运行代码。在VS Code中,你必须确保它使用的是你用pyenv设置的正确的Python环境。通常,它将使用全局Python解释器运行,除非配置为使用另一个解释器。
从docs:
全局和虚拟环境#默认情况下,您安装的任何Python解释器都在其自己的全局环境中运行,该环境不特定于任何一个项目。
你可以阅读here了解如何在VS Code中正确设置它。
另一个问题可能是你的pip不是为环境安装的,而是全局安装的。换句话说,你运行的是正确的环境,但不正确的pip。在这种情况下,你可以运行:

python -m pip install numpy

字符串
它将使用链接到您当前使用的python环境的pip
希望这有帮助!

6za6bjd0

6za6bjd02#

您使用的翻译器是

/opt/homebrew/Caskroom/miniforge/base/bin/python

字符串
但是你假设你正在使用mlp环境,并且已经安装到该环境:

Requirement already satisfied: numpy in /opt/homebrew/Caskroom/miniforge/base/envs/mlp/lib/python3.8/site-packages (1.22.2)


因此,您的visual studio代码设置不正确,因为它应该使用

/opt/homebrew/Caskroom/miniforge/base/envs/mlp/bin/python

9jyewag0

9jyewag03#

这里有几点你必须注意
1.你说你用conda python

  1. /opt/homebrew/Caskroom/miniforge/base/bin/python显示这是从Homebrew安装的Python

**这可能是你正在处理的不丢失numpy的根本原因。**在Mac中,坚持使用一个Python版本非常重要。请重新配置Python路径。

对于您的conda环境,可以选中https://docs.anaconda.com/anaconda/user-guide/tasks/integration/python-path/

**建议:**下载Anaconda Package并安装。

由于您正在使用TensorFlow,我建议您只使用Conda更新,而不是使用任何pip install,以更好地检查包依赖关系并正确计划包更新。

deikduxw

deikduxw4#

你是用conda run来执行python文件吗?像这样:

conda run -n env01 --no-capture-output --live-stream python c:/Work/python3.10/hello/a.py

字符串
这是Python扩展的新更新:
在conda环境中使用conda run来运行python文件和安装模块。(#18479
changelog(2022年2月28日)。
但正如你所发现的,它不会利用Anaconda3下的子环境。它使用的是基本环境。如果你在终端中直接执行它,就像python pythonFileName.py一样,你会发现它可以工作。
更新后看起来像是Python扩展的问题,我已经在GitHub上提交了一个bug,你可以参考here了解更多细节。

更新:

解决方法:
1.在settings.json中将“python.terminal.activateEnvironment”设置为false。
1.降级到工作正常的扩展的先前版本(避免conda run)。
1.尝试以下具有潜在修复的VSIX:https://github.com/microsoft/vscode-python/suites/5578467772/artifacts/180581906,使用Extension:Install from VSIX命令安装VSIX。
理由:
Conda有一些问题:
conda run -n MY-ENV python FILE.py uses the base interpreter instead of environment interpreter.
Running using conda run inside already activated environment should be the same as running it outside
conda run does not remove base environment components from $PATH

7cwmlq89

7cwmlq895#

非常感谢您的帮助!
我现在用这个指南解决了这个问题:https://www.youtube.com/watch?v=_CO-ND1FTOU
首先,我在我的电脑上安装了conda和homebrew,然后安装了miniforge。
至少现在是有效的!

ruoxqz4g

ruoxqz4g6#

python -m pip install numpy
这对我很有效

相关问题