2012-05-15 33 views
4

我有4個目錄:如何添加多個路徑PYTHONPATH編程

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

我有具有文件testall.py

流量測試

/home/user/testing 

另一個目錄,如何能我附加PATHS,通過test4 test1到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 應該工作

+1

那你試試? –

+1

你想在python腳本中做到這一點嗎? ('sys.path.append(path)'),從你的bash shell? 'export PYTHONPATH = $ {PYTHONPATH}:path1:path2:path3:path4',從csh like shells? 'setenv PYTHONPATH $ {PYTHONPATH}:path1:path2:path3:path4' – mgilson

+0

i alos嘗試使用bash並在/ etc/profile中追加此行 export PATHONPATH = $ {PYTHONPATH}:/ home/user/test1:/ home/user/test2:/ home/user/test3:/ home/user/test4 但是當我做echo $ PYTHONPATH時,我什麼也沒得到 – kamal

回答

3

試試這個:

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

不建議,但也許會做你的意思呢?因爲我想你的文件/home/user/test1/test1/common/api/在不 ...

鑑於["a", "b", "c"]蟒路徑,試圖import a.b.c將查找a/a/b/c,然後b/a/b/cc/a/b/c。但是,不是a/b/c。沒有匹配的模塊名稱起始a和python路徑結束a,然後刪除其中一個a s。它嚴格地說是路徑+模塊,而不是路徑的一部分+模塊的一部分。

由於您的問題是關於「多個路徑」,單個路徑爲您工作嗎?似乎也不是那麼...

+0

這個工作,但我仍然會尋找一個通用的解決方案,其中的目錄不必硬編碼,並使用相對路徑。不,它不適用於單一路徑。 – kamal

0

更多類似這樣的:

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