2012-01-09 58 views
2

執行模塊時,我有一個Python項目,是這樣的:導入錯誤mod_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的瀏覽器main.py和mod_python這個錯誤出現:

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

如何,這是一個相對的進口?你已經使用完整的模塊路徑。 – 2012-01-09 11:01:22

回答

0

我看起來像PYTHONPATH在mod_python下執行模塊時,環境變量未正確設置。

一種解決方法的問題,使用問題描述的目錄結構,將其添加到main.py文件:

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

請查看[documentation](http://docs.python.org/tutorial/modules.html#the-module-search-path)以獲得很好的解釋。 – jcollado 2012-01-09 12:57:10

+0

感謝您的幫助 – mahdavipanah 2012-01-10 06:44:00