我有一个像这样的python项目:
py/
main.py
__init__.py
myapp/
__init__.py
my/
__init__.py
exam.py
sub/
__init__.py
index.py
我的文件包含: main.py:
from myapp.sub.index import *
cd = myc()
cd.doit()
exam.py - >
class myclass():
def hel(self):
print 'Hello world'
index.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中不是相对导入工作吗?问题是什么,我该怎么办?
答案 0 :(得分:0)
在mod_python下执行模块时,我看起来没有正确设置PYTHONPATH
环境变量。
使用问题中描述的目录结构解决问题的方法是将其添加到main.py
文件中:
import sys, os
sys.path.insert(0, os.path.dirname(__file__))