Модули, которые я установил с помощью pip и conda, не импортируются в Sublime или Atom, но могут быть импортированы с помощью Jupyter Notebook (и иногда Terminal) - PullRequest
0 голосов
/ 03 февраля 2019

Проблема:
Когда я запускаю следующий код с использованием 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 был, очевидно, импортирован.Другим потенциально полезным фактом является то, что когда я пытался установить nibabel через pip install nibabel, он, казалось, устанавливал.Но когда я написал программу, которая просто сказала import nibabel, она была не импортируемой с использованием 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, выбрал JupyterNotebook, а затем запускал тот же код In [1]: import nibabel, он работал и не выдавал никаких ошибок.

Таким образом, импорт quandl с pip и conda позволил мне использовать Jupyter Notebook и Terminal, но не Atom или Sublime.Однако импорт nibabel только с pip (он не доступен от conda) позволил мне импортировать его в Блокнот Jupyter, но не в Terminal, Atom или Sublime.

Сообщения на форуме, которые кажутся актуальными и решения Iмы попробовали:
Я нашел версию моей проблемы для Windows, но не знал, как адаптировать решение к файловой системе Mac.@Biker_Coder (Mani), кажется, думал, что проблема была в пути, в котором python ищет пакеты. Версия моей проблемы для Windows
Есть несколько других сообщений на форуме с похожими проблемами, и некоторые люди предложиличто проблема может заключаться в том, что автор использовал две версии 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 Мой компьютер работает под управлением «MacOS Mojave Version 10.14.2».

1 Ответ

0 голосов
/ 05 февраля 2019

Похоже, вы используете conda в Jupyter и Atom, но не в своем терминале.Если вы запустите conda env list, вы получите список сред conda.По умолчанию он использует base, и, посмотрев на вашу переменную PATH, это то, что используется в вашем редакторе.

Чтобы войти в эту среду в терминале, запустите conda activate base.После этого запустите pip install nibabel (или conda install nibabel).Вы должны иметь возможность запускать ваш скрипт из терминала и использовать библиотеку, запущенную из Atom.

Кстати, похоже, что ваша установка conda действительно не изменила ваш файл .bash_rc, так как по умолчанию он не загружает базовую среду.

...