修改PYTHONPATH后找不到模块

时间:2019-07-30 18:58:51

标签: python python-2.7

我正在处理一个预先存在的项目,并且想通过扩展PYTHONPATH找到一个新的模块。我将~/code/serenity/api/serenity-api/serenity/python/src添加到了PYTHONPATH的环境变量中,当我打印出sys.path时,在返回列表中看到了路径。但是当我尝试导入文件时

from rbac.rbac import Rbac

我没有找到模块。

文件的完整路径为

~/code/serenity/api/serenity-api/serenity/python/src/rbac/rbac.py

这很重要,它是在虚拟环境中运行的Python 2.7。

2 个答案:

答案 0 :(得分:0)

您不必为了扩展路径而使它复杂化。实际上这样做是很冒险的。如果您知道模块的位置,只需将模块目录复制到源代码所在的目录,然后就可以像上面的代码中一样访问它。

答案 1 :(得分:0)

变量PYTHONPATH仅在您首先执行的进程中保留,而在执行python from rbac.rbac import Rbac时在进程中不存在。

解决方案

您可以执行以下操作: 编写shell脚本

export PYTHONPATH=$HOME/code/serenity/api/serenity-api/serenity/python/src/
python -c "from rbac.rbac import Rbac"

并运行它 -或者编写python脚本

import sys
sys.path.append("~/code/serenity/api/serenity-api/serenity/python/src/")
from rbac.rbac import Rbac

并运行