2015-09-16 5 views
3

У меня есть каталог, который имеет все файлы:Вызов файл вне каталога из внутри каталога - Python

myDirectory/ 
    directory1/ 
     importantFile.py 
    Output.py 

Как я могу импортировать Output.py из importantFile.py без того, чтобы положить в тот же каталог?

importantFile.py

import Output 
Output.write('This worked!') 

Output.py

class Output(): 
    def writeOutput(s): 
     print s 
+0

Используйте полный путь? –

+0

Могу ли я привести пример? –

+2

, пожалуйста, определите, что вы подразумеваете под «вызовом», это импорт? Я бы предоставил небольшой контент для Output и ImportantFile, объясняющий, что вы хотите делать – Bruce

ответ

1

если "вызов" является импорт, в Output.py

import sys 
import os.path 
# change how import path is resolved by adding the subdirectory 
sys.path.append(os.path.abspath(os.getcwd()+'/directory1')) 
import importantFile 

importantFile.f() 

sys.path содержит список пути куда искать модули, подробности в https://docs.python.org/2/library/sys.html

0

Другой способ - использовать относительную нотацию, для которой файл python, который вы хотите импортировать, должен быть в пакете.

Вы должны сделать каталог пакетом python, поставив файл init .py.

Ищите пакет разделов по этой ссылке.

https://docs.python.org/2/tutorial/modules.html

0
import sys 
sys.path.append('/full/path/to/use') 
global exist_importedname 
exist_importedname = True 
try: 
    import myimport 
except ImportError as e: 
    exist_importedname = False 
    print (e.message) 
Смежные вопросы