一个模块在Anaconda命令提示符中可以使用,但在Spyder中无法使用。

8

我已经花了几个小时来解决这个问题,它是一个比较复杂的问题。我的操作系统是Windows 7,Python版本是2.7,使用的集成开发环境是Spyder 3.2.6。我尝试通过cygwin安装OSMNX,但是遇到了很多问题。最终我通过Windows命令提示符成功地安装了它。在anaconda prompt中,我可以无错误地导入osmnx
然而,在Spyder中尝试导入时,我一直收到以下错误信息:
Traceback (most recent call last):

  File "<ipython-input-2-2b99ab66aebb>", line 1, in <module>
    import osmnx

ImportError: No module named osmnx

这里到底出了什么问题?我该如何解决它?

2
你创建过其他环境吗?在Spyder和Anaconda提示符上运行import sys print(sys.executable),看它们是否返回相同的路径。 - Xantium
1
@Simon 我运行了你说的。Spyder和Anaconda运行不同的路径。我该如何将模块从Anaconda路径移动到Spyder路径?因为我已经安装了许多在Spyder上运行的模块。 - philippos
2
https://conda.io/docs/user-guide/tasks/manage-environments.html - Xantium
1
@Simon 我从来没有处理过任何环境(老实说,我不知道怎么做)。所以基本上我没有改变任何默认设置。 - philippos
1
@Simon 非常感谢您提供的有用链接和提示。现在问题来了:在Spyder中,我有两个环境,一个有osmnx,另一个没有。是否可以将模块从一个环境移动到另一个环境?或者是否可以指定要安装模块的环境? - philippos
显示剩余4条评论
3个回答

11

问题在于您的Anaconda提示符和Spyder实例使用不同的环境,正如@Simon所提到的。本问题以及不同的可用解决方案在这里进行了评估:GitHub讨论

您可以按照以下步骤解决问题。假设您已经在Anaconda提示符环境中安装了spyder-kernels软件包,请在Anaconda提示符中运行以下命令:

python -c "import sys; print(sys.executable)"

复制返回到控制台的路径。然后,在Spyder中转到工具>首选项>Python解释器。在这里,您将看到选择所有Spyder控制台的Python解释器下的两个选项。选中第二个选项并粘贴您从Anaconda提示符中复制的路径。关闭Spyder并再次打开它,现在import module命令应该可以正常工作。

通过这样做,Spyder基本上将使用您安装新模块的环境中的Python解释器。


谢谢,这对我很有帮助,可以将spyder内核模块添加到Python中(因为spyder可能需要spyder内核模块才能正常工作)。 - Alon Samuel
我必须按照这个答案中所解释的方式选择适当的解释器。如果你在conda环境中有一个venv,请确保选择venv的解释器。 - Van Peer

4
您需要同步两个环境变量/路径。

只需转到anaconda提示符并输入以下命令:

> conda install spyder

它将自动准备环境。之后,只需打开Spyder并执行您的代码即可。


2

我曾经遇到过相同的问题。我在conda环境中安装了Spyder和Jupyter,之后它们对我来说运行得很好。

source activate my_conda_env
conda install spyder
conda install jupyter notebook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接