2013-07-26 87 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 
相关问题