2017-02-19 4 views
1

ich ein Projekt mit der folgenden Architektur habe:kann nicht Python-Datei über Python-Pfad für den Zugriff auf

source/ 
├── data 
│   ├── job.py 
│   ├── __init__.py 
│   └── __pycache__ 
│    └── article_library.cpython-35.pyc 
├── graph 
├── __init__.py 
├── main.py 
└── settings 
    ├── __init__.py 
    ├── __pycache__ 
    │   ├── __init__.cpython-35.pyc 
    │   └── settings.cpython-35.pyc 
    └── settings.py 

Und das ist mein Python-Pfad:

['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/user/Documents/thesis/venv/lib/python3.5/site-packages'] 

Quelle/Einstellungen/Einstellungen. py

MY_TOKEN = "atokentodostuff" 

Quelle/__ init__.py

from settings import settings 

Quelle/main.py

from settings import settings 
print(settings.MY_TOKEN) 

Es Ausgang mir, dass:

atokentodostuff 

Quelle/data/job.py

from ..settings import settings 
print(settings.MY_TOKEN) 

Aber wenn ich interpretieren diesen Code (was auch immer meine Position im Projekt) ich folgende Fehlermeldung bekam:

Traceback (most recent call last): 
    File "job.py", line 3, in <module> 
    from ..settings import settings 
SystemError: Parent module '' not loaded, cannot perform relative import 

Wie kann ich die Variable in meinem settings.py in die Datei job.py zugreifen. Und gibt es eine Möglichkeit, es von überall her startfähig zu machen?

+0

Google "warum ich pycache tun?" für eine Erklärung. – tburrows13

+0

Jetzt weiß ich, was der Zweck von __pycache__ ist, aber das hilft mir nicht, das Pfadproblem zu lösen – mel

+1

Entschuldigung, ich meinte das nur als Nebenkommentar, damit Sie es verstehen. Es sollte die Frage nicht beantworten. – tburrows13

Antwort

0

Versuchen unter Code-Schnipsel für Quelle/data/job.py

from source.settings import settings 
print(settings.MY_TOKEN) 
+0

Wo soll ich mein Skript starten? – mel

+0

Sie können Skript aus einem beliebigen Quellverzeichnis oder einem verschachtelten Verzeichnis innerhalb des Quellverzeichnisses starten, stellen Sie jedoch sicher, dass Sie Ihren PYTHONPATH bis zum Quellverzeichnis festgelegt haben. – Dev

Verwandte Themen