【发布时间】:2012-05-23 08:56:27
【问题描述】:
我有 4 个目录:
/home/user/test1
/home/user/test2
/home/user/test3
/home/user/test4
我有另一个包含测试的目录
/home/user/testing
拥有文件 testall.py
哦,我如何将 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
没用。
基本上: 从 test1.common.api 导入 GenericAPI 应该工作
【问题讨论】:
-
您想在 python 脚本中执行此操作吗? (
sys.path.append(path)),来自你的 bash shell?export PYTHONPATH=${PYTHONPATH}:path1:path2:path3:path4,来自 csh 之类的 shell?setenv PYTHONPATH ${PYTHONPATH}:path1:path2:path3:path4 -
我也尝试使用 bash 并将这一行附加到 /etc/profile export PATHONPATH=${PYTHONPATH}:/home/user/test1:/home/user/test2:/home/user/test3 :/home/user/test4 但是当我回显 $PYTHONPATH 时,我什么也得不到
-
为什么-2,即使我尝试了很多解决方案?
-
目录中是否有
__init__.py文件(这使得目录成为模块)?如果没有,请放入一个然后尝试sys.path.append('/home/user'); from test1.common.api import ...。 -
更改您的 /etc/profile 您是否注销并再次登录?系统配置文件仅在登录时重新读取。或者,直接在您当前的 shell 中执行该命令...
标签: python path pythonpath