在mod_python下执行模块时的ImportError

时间:2012-01-09 10:55:05

标签: python import

我有一个像这样的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中不是相对导入工作吗?问题是什么,我该怎么办?

1 个答案:

答案 0 :(得分:0)

在mod_python下执行模块时,我看起来没有正确设置PYTHONPATH环境变量。

使用问题中描述的目录结构解决问题的方法是将其添加到main.py文件中:

import sys, os
sys.path.insert(0, os.path.dirname(__file__))