我用 pip 和 conda 安装的模块在 Sublime 或 Atom 中不可导入,但可以使用 Jupyter Notebook(有时是终端)导入

Modules I've installed with pip and conda are not importable in Sublime or Atom, but can be imported using Jupyter Notebook (and sometimes Terminal)

问题:
当我 运行 以下代码使用 Atom 或 Sublime 时:

import quandl
df = quandl.get('WIKI/GOOGL')
print(df)

我收到以下错误:

Traceback (most recent call last):
File "/Users/patrick/Desktop/Untitled.py", line 1, in <module>
import quandl
ImportError: No module named quandl
[Finished in 0.3s with exit code 1]
[shell_cmd: python -u "/Users/patrick/Desktop/Untitled.py"]
[dir: /Users/patrick/Desktop]
[path: /Library/Frameworks/Python.framework/Versions/3.7/bin:/anaconda3/bin:/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

*我在输出中删除了我的姓氏。
然而,当我通过以下代码 运行 在终端(文件名为 Untitled.py)中使用相同的代码时:

$ cd Desktop
$ python Untitled.py

我打印了一个数据框(根据需要),所以显然导入了 quandl。另一个可能有用的事实是,当我尝试通过 pip install nibabel 安装 nibabel 时,它似乎可以安装。但是,当我编写一个简单地写 import nibabel 的程序时,它 not 无法使用 Terminal 或 Sublime 导入。这是终端中的错误代码:

Traceback (most recent call last):
  File "Untitled.py", line 1, in <module>
    import nibabel
ModuleNotFoundError: No module named 'nibabel'

这是 Sublime 中的错误代码(姓氏已删除):

Traceback (most recent call last):
  File "/Users/patrick/Desktop/Untitled.py", line 1, in <module>
    import nibabel
ImportError: No module named nibabel
[Finished in 0.3s with exit code 1]
[shell_cmd: python -u "/Users/patrick/Desktop/Untitled.py"]
[dir: /Users/patrick/Desktop]
[path: /Library/Frameworks/Python.framework/Versions/3.7/bin:/anaconda3/bin:/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

然而,当我打开 Anaconda Navigator,选择 Jupyter Notebook,然后 运行 相同的代码 In [1]: import nibabel 它工作并且没有抛出任何错误。

总而言之,使用 pip 和 conda 导入 quandl 允许我使用 Jupyter Notebook 和 Terminal,但不能使用 Atom 或 Sublime。但是,仅使用 pip 导入 nibabel(conda 不可用)允许我将其导入 Jupyter Notebook,但不能导入 Terminal、Atom 或 Sublime。

似乎相关的论坛帖子和我尝试过的解决方案:
我发现似乎是我的问题的 Windows 版本,但我不确定如何使解决方案适应 Mac 文件系统。 @Biker_Coder (Mani) 似乎认为问题出在 python 查找包的路径上。
其他一些论坛帖子也有类似的问题,有些人认为问题可能出在作者 运行ning 两个版本的 Python 上。这听起来不像是我的问题,因为我最近刚开始使用 Python 并且我认为我没有下载它的两个版本。在其他一些论坛中,人们幸运地将 "quandl" 更改为 "Quandl",反之亦然。这对我不起作用。事实上,我很确定它与quandl无关,因为安装和导入nibabel会导致同样的问题。
感谢阅读所有这些内容的所有人,无论您是否知道解决方案。


可能有用的系统信息: 这就是我的全部问题,但这里有一些额外的信息,以防有帮助。 当我打开 IDLE 和 运行 >>> import sys 然后 >>>print(sys.path),我得到以下输出(我再次删除了出现的姓氏):

['', '/Users/patrick/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']

当我在终端中输入 $ python --version 时,它输出 Python 3.7.2 我的电脑是 运行ning "MacOS Mojave Version 10.14.2".

您似乎在 Jupyter 和 Atom 中使用了 conda,但没有在您的终端中使用。 如果你 运行 conda env list,你会得到一个 conda 环境的列表。默认情况下,它使用 base 并通过查看您的 PATH,这就是您的编辑器中使用的。

要在终端中进入该环境,运行 conda activate base。之后,运行pip install nibabel(或conda install nibabel)。您应该能够从终端 运行 您的脚本并使用来自 Atom 的库 运行ning。

顺便说一句,您的 conda 安装似乎并没有真正改变您的 .bash_rc 文件,因为默认情况下它没有加载基础环境。