Как импортировать файл .py из другого каталога? [Дубликат]

17

У меня есть эта структура файлов (каталог и файлы со стрелками):

model -> py_file.py 
report -> other_py_file.py

main __init__.py :

import model
import report

каталог модели:

import py_file

каталог отчетов:

import other_py_file

теперь в other_py_file Я хочу импортировать py_file , но что бы я ни старался, я даю ошибку, что такого модуля нет.

Я пробовал это: % Co_de%

Тогда: % Co_de%

Похоже, эти две папки не видят друг друга. Как импортировать файл из другого каталога? Нужно ли указывать дополнительные импортные файлы в файлах init .py?

    
задан Andrius 09.04.2014 в 09:29
источник

2 ответа

27

Вы можете добавить к системному пути во время выполнения:

import sys
sys.path.insert(0, 'path/to/your/py_file')

import py_file

Это самый простой способ сделать это.

    
ответ дан Alex Thornton 09.04.2014 в 09:47
источник
13

Python3:

import importlib.machinery

loader = importlib.machinery.SourceFileLoader('report', '/full/path/report/other_py_file.py')
handle = loader.load_module('report')

handle.mainFunction(parameter)

Этот метод можно использовать для импорта в зависимости от того, какой вы хотите в структуре папок (в обратном направлении, вперёд не имеет значения, я просто использую абсолютные пути).

Претензии к Себастьяну для создания аналогичного ответ для Python2:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
    
ответ дан Torxed 09.04.2014 в 09:33
источник