Skip to main content
 首页 » 编程设计

python之在mod_python下执行模块时出现ImportError

2025年05月04日11lyhabc

我有一个像这样的 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__))