如何以编程方式将多个路径附加到PYTHONPATH

时间:2012-05-15 19:38:59

标签: python path pythonpath

我有4个目录:

/home/user/test1
/home/user/test2
/home/user/test3
/home/user/test4

我有另一个带测试的目录

/home/user/testing

拥有testall.py文件

ow,我怎么能将PATT,test1到test4附加到PYTHONPATH,以便我可以访问test1到4下的文件。

btw,test1到4有多个目录,其中有python文件所在的位置。

我试过了:

import sys
import os
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0,os.path.join(PROJECT_ROOT,"test1"))
sys.path.insert(1,os.path.join(PROJECT_ROOT,"test2"))
sys.path.insert(2,os.path.join(PROJECT_ROOT,"test3"))
sys.path.insert(3,os.path.join(PROJECT_ROOT,"test4"))

似乎无法正常工作

也:

import sys
sys.path.append('/home/user/test1','/home/user/test2','/home/user/test3','/home/kahmed/test4')
from test1.common.api import GenericAPI

没用。

基本上是: 来自test1.common.api导入GenericAPI 应该工作

3 个答案:

答案 0 :(得分:4)

试试这个:

import sys
sys.path.append('/home/user/')
from test1.common.api import GenericAPI

不推荐,但可能会做你想做的事情?因为我猜你的文件在<{1}} ...

文件夹中不是

给定/home/user/test1/test1/common/api/的python路径,尝试["a", "b", "c"]会查看import a.b.c,然后a/a/b/cb/a/b/c。但是,c/a/b/c中的 NOT 。模块名开始a/b/c和python路径结尾a没有匹配,然后遗漏了{{1}之一}}秒。它严格来说是路径+模块,而不是路径的一部分+模块的一部分。

由于您的问题是关于“多条路径”,单一路径是否适用于您?似乎不是这样......

答案 1 :(得分:0)

更像这样:

sys.path.append \
("C:\\Program Files\\DIgSILENT\\...");("C:\\Programs\\eclipse...")

答案 2 :(得分:0)

sys.path.append('/home/user/test1','/home/user/test2', ...)不起作用,因为append()函数只能接受1个参数。

您可以改用的是:

import sys
sys.path += ('/home/user/test1','/home/user/test2','/home/user/test3','/home/kahmed/test4')