Как исправить проблему относительного импорта Python - PullRequest
0 голосов
/ 07 мая 2019

Я хочу импортировать файл, который находится в родительской папке, и я не хочу делать это с sys

мои файлы:

import/
   sub_folder/
       x.py
   a.py

файл a.py:

def spam():
    print "gg"

файл x.py:

from .. import a

def main():
    a.spam()

if __name__ == "__main__":
    main()

это ошибка - Попытка относительного импортав не-пакете

все перепробовал и ничего не работает

1 Ответ

0 голосов
/ 07 мая 2019

Относительный импорт не работает с файлами, которые выполняются как основной файл.

Относительный импорт зависит от атрибута __name__, который установлен на __main__, если вы выполняете этот файл напрямую.

Вам нужно выполнить этот файл как пакет

python -m import.sub_folder.x

И вам нужно поместить в папки несколько файлов __init__.py, чтобы python распознал их как пакеты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...