【问题标题】: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)我用 pip 和 conda 安装的模块不能在 Sublime 或 Atom 中导入,但可以使用 Jupyter Notebook(有时是终端)导入
【发布时间】:2019-02-03 19:48:44
【问题描述】:

问题:
当我使用 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 的程序时,它是不可使用终端或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 在其中查找包的路径上。 Windows version of my problem
其他一些论坛帖子也有类似的问题,有些人认为问题可能是作者运行了两个版本的 Python。这听起来不像是我的问题,因为我最近才开始使用 Python,而且我认为我没有下载它的两个版本。在其他一些论坛中,人们幸运地将“quandl”更改为“Quandl”,反之亦然。这对我不起作用。事实上,我很确定这与 quandl 无关,因为安装和导入 nibabel 会导致相同的问题。
感谢所有阅读本文的人,无论您是否知道解决方案。强>


可能有用的系统信息: 这就是我的全部问题,但如果有帮助,这里有一些额外的信息。 当我打开 IDLE 并运行 &gt;&gt;&gt; import sys 然后运行 ​​&gt;&gt;&gt;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 我的电脑正在运行“MacOS Mojave 版本 10.14.2”。

【问题讨论】:

    标签: python package anaconda python-idle


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 2018-06-13
      • 2023-04-03
      • 2020-02-21
      • 2021-09-13
      相关资源
      最近更新 更多