У меня есть проект со следующей архитектурой:Невозможно получить доступ к файлу питон через питона путь
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
И это мой путь питона:
['', '/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']
источник/настройки/настройки. ру
MY_TOKEN = "atokentodostuff"
источник/__ init__.py
from settings import settings
источник/main.py
from settings import settings
print(settings.MY_TOKEN)
Это выход мне, что:
atokentodostuff
источник/данные/job.py
from ..settings import settings
print(settings.MY_TOKEN)
Но когда я интерпретирую этот код (независимо от того моя позиция в проекте), я получил следующее сообщение об ошибке:
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
Как я могу получить доступ к переменной в моем settings.py
в файл job.py
. И есть ли способ заставить его запускаться повсюду?
Google "почему у меня pycache?" для объяснения. – tburrows13
Теперь я знаю, в чем цель __pycache__, но это не помогает мне решить проблему пути. – mel
Извините, я только имел в виду это как побочный комментарий, чтобы помочь вам разобраться. Он не должен был отвечать на вопрос. – tburrows13