2016-08-03 11 views
1

ich von eingebauten Funktionen in ‚pythonfile1.py‘ gesetzt habe sie an ‚/ Users/Testuser/Documents‘ enthält die DateiImport Satz von eingebauten Funktionen aus einer Python-Datei in einer anderen Python-Datei

import os 
import sys 
import time 

Jetzt ich will ‚pythonfile1.py‘ auf ‚pythonfile2.py‘ importieren, die auf ‚befindet/Users/Testuser/Dokumente/execute‘ ich mit meinem folgenden Code versucht und es hat nicht funktioniert:

import sys 
sys.path[0:0] = '/Users/testuser/Documents' 
import pythonfile1.py 
print os.getcwd() 

Ich möchte, dass es das aktuelle Arbeitsverzeichnis

druckt
+0

Versuchen Sie, sys.path nach dem Ändern zu drucken. – polku

+0

Für einen Anfang (möglicherweise nicht alle) ändern Sie 'Import Pythonfile1.py' zu 'von Pythonfile1 Import *' –

+0

Bitte fügen Sie den Fehler, den Sie erhalten, wenn Sie den Code ausführen! Deine Importanweisungen sind falsch ... – MisterMiyagi

Antwort

0

Wenn Sie Zeug aus einer anderen Datei importieren möchten, sollten Sie Python-Module verwenden.

Wenn Sie die Datei mit dem Namen init .py erstellen, wird der Ordner execute zu einem Modul. Danach können Sie

from .pythonfile1 import function_name 

oder Sie können

from .pythonfile1 import * 

die alle importiert, aber bessere Lösung ist der Name alles, was Sie wollen, können explizit

Sie mehr über Module finden verwenden verwenden in documentation

+0

Die Anweisung 'from .pythonfile1 import function_name' funktioniert nicht in seiner' pythonfile2', da sie sich in einem Unterverzeichnis von execute befindet. Es sollte stattdessen "from execute.pythonfile1 import function_name" sein. Aber ich vermute, dass "execute" in ein Paket verwandelt werden könnte, was er wirklich kann. – MisterMiyagi

1

Ihre Frage ist ein wenig unklar. Grundsätzlich gibt es zwei Dinge "falsch".

  • Zuerst wird Ihre Import-Anweisung gebrochen:

    import pythonfile1.py 
    

    Dies legt einen Datei Namen, keinen Modul Namen - Module keine Punkte und Erweiterungen enthält. Dies ist wichtig, da Punkte Sub -Module von Paketen angeben. Ihre Anweisung versucht, das Modul py aus dem Paket pythonfile1 zu importieren. Ändern Sie ihn auf

    import pythonfile1 
    
  • Zweitens gibt es keine Notwendigkeit zu builtins von einem anderen Modul zu holen. Sie können sie einfach erneut importieren.

    # pythonfile1 
    import os 
    print 'pythonfile1', os.getcwd() # assuming py2 syntax 
    
    # pythonfile2 
    import os 
    print 'pythonfile2', os.getcwd() 
    

    Wenn Sie wirklichos von pythonfile1 verwenden möchten, können Sie dies tun:

    # pythonfile2 
    import os 
    import pythonfile1 
    print 'pythonfile2', os.getcwd() 
    print 'pythonfile1->2', pythonfile1.os.getcwd() 
    

    Beachten Sie, dass os und pythonfile1.os in pythonfile2 genau das gleiche Modul sind.

Verwandte Themen