7

我有 4 个目录:

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

我有另一个包含测试的目录

/home/user/testing

拥有文件 testall.py

ow,我如何将 test1 到 test4 的 PATHS 附加到 PYTHONPATH,以便我可以访问 test1 到 4 下的文件。

顺便说一句,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

不工作。

基本上: from test1.common.api import GenericAPI 应该可以工作

4

3 回答 3

7

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']
于 2019-05-30T14:31:06.950 回答
4

试试这个:

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

不建议这样做,但也许会做你想做的事?因为我猜你的文件不在文件夹/home/user/test1/test1/common/api/中......

给定一个 python 路径["a", "b", "c"],试图import a.b.c将查找a/a/b/c,然后b/a/b/cc/a/b/c。但是,不在. a/b/c没有以开头的模块名称和以结尾apython 路径然后省略其中一个s 的匹配。严格来说是路径+模块,而不是路径的一部分+模块的一部分。aa

既然您的问题是关于“多条路径”的,那么条路径对您有用吗?好像不是这样...

于 2012-05-15T20:17:13.907 回答
0

更像这样:

sys.path.append \
("C:\\Program Files\\DIgSILENT\\...");("C:\\Programs\\eclipse...")
于 2014-01-15T05:43:36.587 回答