Возможный дубликат:
Структура пакета Python
Здравствуйте, Я хочу импортировать файл python, который у меня есть в подкаталоге, который находится ниже корня моего основного файла. например.
import ../library/utils.py
Когда я помещаю это в свой код и запускаю его, я получаю ошибку компиляции.
Есть ли способ включить файлы из корневого каталога основного файла или он должен находиться в подкаталоге в корне?
Спасибо за вашу помощь.
import sys, os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'library')))
import utils
Это изменит переменную sys.path, содержащую каталоги для поиска файлов. Он также удостоверится, что он найдет его правильно, даже если вы запустите его как:
$ python the_file.py
$ python ../the_file.py
$ python /somewhere/over/the_file.py
Это будет работать для разработки, тестирования, обучения. Установленные файлы не нуждаются в такой конструкции.
__file__
может не отражать фактическое место установки источника (байт-код часто создается во временном каталоге сборки и затем перемещается в каталог установки). Это также терпит неудачу для яиц и почтовых файлов.
Вы не импортируете файлы, вы импортируете модули. Измените sys.path
соответственно и выполните import utils
, например.
import sys
sys.path.append('../library')
import utils