2016-06-05 5 views
1

Hallo Stack Overflow-Community, ich habe die Titular-Fehler stoßen bei dem Versuch, den Befehl auszuführen ‚jupyter Notebook‘„Import: Kein Modul namens site“ mit Jupyter Notebooks

Ich laufe ein frisch von Scientific installieren Linux 7. Beim Öffnen eines neuen Terminals kann ich das Jupyter-Notebook problemlos in meinem Browser ausführen. Ich habe ein Paket installiert, das eine eigene Python-Distribution enthält, und ich muss vor der Verwendung ein Setup-Skript ausführen. Nach dem Ausführen des Setup-Skripts (das verschiedene Dinge für meine Umgebungsvariablen ausführt) funktioniert Jupyter nicht mehr (gibt mir den Fehler "Kein Modul namens Site").

Googling sagte mir zu versuchen, sowohl PYTHONPATH und PYTHONHOME schütteln, aber das hat nicht funktioniert. Könnte mir jemand erklären, wie sich die Umgebungsvariablen ändern, wie Python nach Paketen sucht? Bitte lassen Sie mich wissen, wenn ich etwas klären kann, um die Beantwortung meiner Anfrage zu erleichtern.

Danke!

Edit: das Setup-Skript ist nicht sehr aufschlussreich, soweit ich das beurteilen kann. Als Referenz verwende ich die Fermi Science Tools (http://fermi.gsfc.nasa.gov/ssc/data/analysis/software/). Hier ist der Code für das Setup-Skript (ein Teil der Vertiefung aus einem Bit sein kann, weil ich neu in diesem bin, aber sicher sein, das Skript ohne Probleme läuft)

# Filename: fermi-init.sh 
# Description: Bourne-shell flavor initialization for all FERMI software. 
#    Runs fermi-setup to generate a sh script tailored 
#    specifically to this user and FERMI software 
#    installation, then source that. 
# Author/Date: James Peachey, HEASARC/GSFC/NASA, May 3, 1999 
# Modified for HEADAS December 2001 
# Adapted for FERMI September 2008 
# 
#if [ "x$HEADAS" = x ]; then 
# echo "fermi-init.sh: WARNING -- set HEADAS and source headas-init.sh before sourcing fermi-init.sh!"   
# echo "Do you wish to proceed with sourcing?" 
# select yn in "Yes" "No"; do 
    #  case $yn in 
     #   Yes) 
      #    if [ "x$FERMI_DIR" = x ]; then 
       #     echo "fermi-init.sh: ERROR -- set FERMI_DIR before sourcing fermi-init.sh" 
      #    elif [ -x "$FERMI_DIR/BUILD_DIR/fermi-setup" ]; then 
       #     export FERMI_INST_DIR=${FERMI_DIR} 
       #     fermi_init=`$FERMI_INST_DIR/BUILD_DIR/fermi-setup sh` 
       #     if [ $? -eq 0 -a "x$fermi_init" != x ]; then 
       #     if [ -f "$fermi_init" ]; then 
        #      . $fermi_init 
       #     fi 
       #     rm -f $fermi_init 
       #     fi 
       #     unset fermi_init 
      #    else 
       #     echo "fermi-init.sh: ERROR -- cannot execute $FERMI_DIR/BUILD_DIR/fermi-setup" 
      #    fi 
      #    break;; 
     #   No) 
      #    break;; 
    #  esac 
#done 
#else 
    if [ "x$FERMI_DIR" = x ]; then 
echo "fermi-init.sh: ERROR -- set FERMI_DIR before sourcing fermi-init.sh" 
    elif [ -x "$FERMI_DIR/BUILD_DIR/fermi-setup" ]; then 
    export FERMI_INST_DIR=${FERMI_DIR} 
    fermi_init=`$FERMI_INST_DIR/BUILD_DIR/fermi-setup sh` 
    if [ $? -eq 0 -a "x$fermi_init" != x ]; then 
    if [ -f "$fermi_init" ]; then 
     . $fermi_init 
    fi 
    rm -f $fermi_init 
    fi 
    unset fermi_init 
    else 
    echo "fermi-init.sh: ERROR -- cannot execute $FERMI_DIR/BUILD_DIR/fermi-setup" 
fi 
#fi 
+0

Es ist schwer zu wissen, was das Problem ist, ohne zu sehen, Ihr Setup-Skript – polku

+1

'site' ist normalerweise ein * Built-in * -Modul; Es kommt mit der Python-Binärdatei. Nicht in der Lage 'site' zu ​​importieren ist ... beunruhigend, um es gelinde auszudrücken. –

+1

Haben Sie nach dem Ausführen des Setup-Skripts versucht, den Jupyter-Kernel in Ihrem Browser neu zu starten? – GreySage

Antwort

0

Disclaimer: Ich an Datmo arbeiten, wo wir ein neues Werkzeug zur Verbesserung der quantitativen Arbeitsabläufe aufbauen.

Ich würde sehr empfehlen, Docker in diesem Fall zu verwenden. Sie können Ihre Umgebung stattdessen mithilfe eines Containers einrichten. In Ihrem Fall laufen Sie beispielsweise auf Scientific Linux 7, sodass Sie die Fermi Science Tools direkt installieren können. Stattdessen können Sie einfach eine Standard-Linux-Installation (CentOS, Debian oder Ubuntu) verwenden und Docker von this link installieren.

Sobald Sie, dass installiert haben, können Sie das Bild ziehen, wie auf this page mit dem Befehl geschrieben wird:

docker pull sfegan/fermitools_ubuntu 

Sie können dann beliebigen Code ausführen Sie, indem Sie docker run wollen (docs here)

Wenn Sie Bei der Arbeit an einem besonders schwierigen quantitativen Arbeitsablauf (zB Arbeiten mit großen wissenschaftlichen Datensätzen usw.) gibt es kostenlose Tools wie Datmo, die Docker verwenden, um Ihnen bei der Einrichtung zu helfen.