我有一个像这样的 python 项目:
py/
main.py
__init__.py
myapp/
__init__.py
my/
__init__.py
exam.py
sub/
__init__.py
index.py
我的文件包含: 主要文件:
from myapp.sub.index import *
cd = myc()
cd.doit()
考试.py -->
class myclass():
def hel(self):
print 'Hello world'
索引.py -->
from myapp.my.exam import myclass
class myc():
def doit(self):
mycc = myclass()
mycc.hel()
我使用 fedora 并且当我使用命令时:
python main.py
打印 Hello world,但是当我想在我的浏览器中使用 apache 和 mod_python 启动 main.py 时出现此错误:
File "/var/www/html/py/main.py", line 1, in <module>
from myapp.sub.index import *
ImportError: No module named myapp.sub.index
相对导入在 mod_python 中不起作用吗?问题是什么,我该怎么办?
请您参考如下方法:
我看起来像在 mod_python 下执行模块时未正确设置 PYTHONPATH 环境变量。
解决该问题的方法是使用问题中描述的目录结构将其添加到 main.py 文件中:
import sys, os
sys.path.insert(0, os.path.dirname(__file__))
