Wie lässt sich Jupyter Notebook so einrichten, dass ein Modul an der richtigen Stelle sucht?

Wie lässt sich Jupyter Notebook so einrichten, dass ein Modul an der richtigen Stelle sucht?

Beim Versuch, ein Jupyter-Notebook mit dem Python2-Kernel zu importieren, emceeerhielt ich die folgende Fehlermeldung:

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

anscheinend, weil ich den Python2-Kernel verwende.

Anschließend habe ich ipykernal mit folgendem Programm installiert:python3 -m pip install ipykernel

Ich habe dann ein Jupyter-Notebook mit dem Python3-Kernel geöffnet. Ich habe es erneut versucht, import emceeaber ich hatte das gleiche Problem. Es suchte immer noch nach dem emceeModul im Python2-Pfad.

Ich habe dann pip3 install emceeein Jupyter-Notebook (Python3-Kernel) geöffnet, aber ich habe immer noch das gleiche Problem.

Ich glaube, ich muss Jupyter Notebook anweisen, nach der Python3-Version von Emcee zu suchen, aber ich bin nicht sicher, wie das geht. Ich habe gerade Folgendes versucht:

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

Aber auch das hat das Problem nicht behoben. Ich habe sys.pathin meinem Jupyter-Notebook nachgesehen und der neue Python-Pfad schien nicht hinzugefügt worden zu sein.

Kann mir bitte jemand sagen, was ich falsch mache?

Antwort1

Das Jupyter-Notebook verwendete den Python3-Kernel nicht wirklich, obwohl es dies behauptete:

Mein Python3-Kernel befand sich:/home/damejia/.local/share/jupyter/kernels/python3

Die kernel.jsonDatei war:

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

Aber „python“ verweist nur auf mein Python2. Ich habe „python“ in „python3“ geändert und alles hat funktioniert.

verwandte Informationen