2013-07-26 133 views
0

這是我的目錄樹如何從python中的其他目錄導入模塊?

Game/ 
    a/ 
     1.py 
     ... 
    b/ 
     2.py 

在2.py我想從1.py.導入功能顯示首先我將兩個文件保存在同一個文件夾中沒有問題。但是如何從其他位置導入?

+0

@Haidro相似,但我在尋找簡單的方法(不創建的distutils包) 。 – mridul

回答

2

嘗試使用imp

import imp 
foo = imp.load_source('filename', 'File\Directory\filename.py') 

這就像導入正常,現在你可以使用文件採用進口

你那麼使用了什麼你把它命名爲(在這種情況下foo)是這樣的:

foo.method() 

希望那是什麼您是在尋找!

你也可以試試這個:

import sys 
sys.path.append('folder_name') 
0

確保你有一個__init__.py文件要從導入,然後你有2個選項中的任何目錄;

例如現在您的代碼看起來就像這樣:

Game/ 
    __init__.py 
    a/ 
     __init__.py 
     1.py 
     ... 
    b/ 
     __init__.py 
     2.py 
  1. 如果您Game文件夾在PYTHONPATH你現在可以在1.py
  2. from ..a import 1這是relative import
1

from Game.a import 12.py反之亦然你有兩個選擇:

另一個文件夾添加到sys.path並通過名稱導入

import sys 
sys.path.append('../a') 

import mod1 
# you need to add `__init__.py` to `../a` folder 
# and rename `1.py` to `mod1.py` or anything starts with letter 

或者創建的distutils包,比你將能夠使相對進口喜歡

from ..a import mod1 
相關問題