python - 安装的模块返回 ModuleNotFoundError
问题描述
我virtualenvwrapper
用来管理一个我现在正在运行的项目
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
with beam.Pipeline(options=PipelineOptions()) as p:
pass
这将返回以下错误
Traceback (most recent call last):
File "path/to/pipeline.py", line 1, in <module>
import apache_beam as beam
ModuleNotFoundError: No module named 'apache_beam'
我已经跑了pip install apache-beam
。跑步pip list
回报
➜ pip list
Package Version
------------------------------ ---------
apache-beam 2.23.0
avro-python3 1.9.2.1
...
我将按照类似问题中的建议添加以下输出。
pip freeze
➜ pip freeze
apache-beam==2.23.0
avro-python3==1.9.2.1
...
pip -V
➜ pip -V
pip 20.2.2 from /Users/miguel/.virtualenvs/myenv/lib/python3.7/site-packages/pip (python 3.7)
python -V
➜ python -V
Python 3.7.3
which python
➜ which python
/Users/miguel/.virtualenvs/myenv/bin/python
which pip
➜ which pip
/Users/miguel/.virtualenvs/myenv/bin/pip
我不知道这是否相关,但我正在使用 VSCode,并且我已根据此处的 VSCode 说明选择了我的 python 解释器。此外,我按照此处的说明安装了 python 。
知道为什么会这样吗?
解决方案
首先测试您安装的 Python 模块是否在 VSCode 之类的 ide 之外工作。我们可以通过打开终端/命令提示符并激活我们的虚拟环境来做到这一点。在这种情况下,当您使用virtualenvwrapper时,您需要使用以下命令:
workon myenv
virtualenvwrapper的文档可以在这里找到。激活后,我们可以使用以下命令在终端中打开 Python 解释器:
python
运行后,尝试像使用之前一样导入 apache_beam:
import apache_beam as beam
如果这可行,我们现在知道这是使用 VSCode 设置虚拟环境的问题。要在 VSCode 中为 Python 设置虚拟环境,请使用官方文档Using Python environment in VS Code。这应该允许您指定虚拟环境。
如果这不起作用,另一种选择是在 VSCode 中创建一个新的虚拟环境并安装你的模块。在 VSCode 中将模块安装到环境中可以在您在帖子中链接到的 VSCode 说明中找到。
我尝试使用以下方法重新创建您的问题:
- Python 3.7.7
- VSCode 1.48.0
- 阿帕奇光束 2.23.0
我的虚拟环境被命名为“堆栈”。一旦我创建了它,我安装的唯一模块就是 apache-beam 使用:
pip install apache-beam
创建项目时,我创建了目录并使用以下命令通过终端启动:
- mkdir hello
- cd hello
- code .
然后通过以下命令添加 Python 解释器:
Python: Select Interpreter
我需要的另一个步骤(因为我通常使用 PyCharm for Python)是安装:
Shell Command: Install 'code' command in PATH** command.
允许通过终端启动代码。以下是执行这些步骤并运行与您的问题中发布的相同命令以供参考后的项目屏幕截图。
我的 .vscode/settings.json 如下:
{
"python.pythonPath": "/Users/robertyoung/envs/stack/bin/python"
}
推荐阅读
- hana - SAP HANA 中的表函数与脚本计算视图
- react-native - Expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行
- python - 如何解决 ModuleNotFoundError: No module named 'prompt_toolkit.formatted_text' in Jupyter Notebook in Pycharm IDE?
- c++ - C++ 错误:不能将参数 2 从 'char' 转换为 char[]'
- javascript - 检查复选框的第一个和最后一个元素的记录单击保存按钮时检查该记录是否已经存在
- c# - 在 1366x768 分辨率屏幕中安装 1148X809 表格(15 英寸笔记本电脑屏幕)
- r - 在ggplot中显示以百万为单位的轴值
- twitter-bootstrap-3 - 表响应在引导程序 3 中不起作用
- pandas - Pandas - 展平从应用 loc 操作返回的数据帧的对角线值
- javascript - 如何在 mocha 中测试替换方法?