从python语法错误中的相对路径导入

时间:2015-07-16 03:01:55

标签: python

我正在尝试从我的python程序中的相对路径导入。

我要导入的课程是

home/foo/bar/model.py 

但是,我当前的python脚本在

home/best/user/test.py

我试过用

from ../../foo/bar import class

但它会引发语法错误

2 个答案:

答案 0 :(得分:2)

你做不到。您无法从显式指定的路径导入(没有可怕的欺骗)。所有Python导入都基于系统范围的导入路径(def Latin1ToUnicodeDictReader(latin1_data, **kwargs): csv_reader = csv.DictReader(latin1_data, **kwargs) for row in csv_reader: yield {key: value.decode('iso-8859-1').encode('utf8') if value else value for key, value in row.iteritems()} reader = Latin1ToUnicodeDictReader(csvfile, delimiter='\t') )。您无法导入任何无法从sys,path访问的内容(即,它位于sys,path本身,或者位于sys.path上的包内。 The documenation有详细信息。如果您希望能够从该文件导入,则需要以某种方式将其目录(或其最顶层包含的包的目录)添加到路径中。

答案 1 :(得分:2)

导入模块时,python会查找当前工作目录和sys.path中的路径。您可以将要导入的脚本目录添加到sys.path

import sys
sys.path.append('home/foo/bar')
import model # imports home/foo/bar/model.py