Как заставить Jupyter Notebook искать модуль в нужном месте?

Как заставить Jupyter Notebook искать модуль в нужном месте?

Используя Jupyter Notebook, работающий с ядром python2, я попытался выполнить импорт emceeи получил сообщение об ошибке:

File "/home/me/.local/lib/python2.7/site-packages/emcee/ensemble.py", line 84
    parameter_names: Optional[Union[Dict[str, int], List[str]]] = None,
                   ^
SyntaxError: invalid syntax

видимо потому что я использую ядро ​​python2.

Затем я установил ipykernal с помощью:python3 -m pip install ipykernel

Затем я открыл Jupyter Notebook, используя ядро ​​Python3. Я снова попытался, import emceeно у меня была та же проблема. Он все еще искал emceeмодуль в пути python2.

Затем я pip3 install emceeоткрыл Jupyter Notebook (ядро Python3), но проблема осталась прежней.

Думаю, мне нужно указать Jupyter Notebook искать версию emcee для python3, но я не уверен, как это сделать. Я только что попробовал:

export PYTHONPATH='/home/me/.local/lib/python3.6/site-packages/'

Но опять же, это не исправило ситуацию. Я проверил sys.pathв своем Jupyter Notebook, и новый путь к python, похоже, не был добавлен.

Может ли кто-нибудь сказать мне, что я делаю не так?

решение1

Jupyter Notebook на самом деле не использовал ядро ​​python3, хотя и утверждал, что использует:

Мое ядро ​​python3 располагалось:/home/damejia/.local/share/jupyter/kernels/python3

Файл kernel.jsonбыл:

{
 "argv": [
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

Но "python" просто указывает на мой python2. Я изменил "python" на "python3" и все заработало.

Связанный контент