【发布时间】:2020-08-20 07:08:25
【问题描述】:
我正在使用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
...
我将按照类似question 中的建议添加以下输出。
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 指令here 选择了我的 python 解释器。另外,我按照here的说明安装了python。
知道为什么会这样吗?
【问题讨论】:
-
您是否尝试过测试在 VSCode 之外设置的环境?例如,打开终端/命令提示符,激活您的虚拟环境,然后使用此 venv 在终端中运行 Python。然后,一旦 Python 在终端中运行,您就可以尝试使用 apache_beam 进行导入。如果是模块安装/依赖问题,或者您的 venv 在 VSCode 中没有按预期运行,我认为这将有助于缩小范围。
-
谢谢!我刚试过这个,它确实有效,所以在这种情况下它可能是一个 VSCode 问题。我不明白,因为它运行的是我上面提到的同一个解释器......
-
太好了,所以它看起来像一个 VSCode 环境设置,我将结合上述问题测试的答案和一些关于如何在 VSCode 中设置 Python 环境的提示
-
我已经发布了一个答案,让我知道它是否有效。如果不是,我将在我的机器上重新创建步骤以重新创建和解决问题,并在答案中发布更多信息。
标签: python visual-studio-code virtualenvwrapper