2010-11-18 184 views
0

我使用Windows XP,并使用从http://www.python.org/ftp/python/2.7/python-2.7.msi导入错误:

如果我在独立的应用程序正在运行的Python运行时不能导入名称TZ(psycopg2),import psycopg2不会找我麻烦。但是,当来到mod_wsgi + apache时,我会得到以下错误:

[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] mod_wsgi (pid=2832): Target WSGI script 'C:/Projects/SandBox/web/script/index.py' cannot be loaded as Python module. 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] mod_wsgi (pid=2832): Exception occurred processing WSGI script 'C:/Projects/SandBox/web/script/index.py'. 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] File "C:/Projects/SandBox/web/script/index.py", line 9, in <module> 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1]  import psycopg2 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] File "build\\bdist.win32\\egg\\psycopg2\\__init__.py", line 65, in <module> 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1]  from psycopg2 import tz 
[Thu Nov 18 14:26:51 2010] [error] [client 127.0.0.1] ImportError: cannot import name tz 

这里是python脚本。

import sys, os 
sys.path.append(os.path.dirname(__file__)) 

import psycopg2 

def application(environ, start_response): 
    status = '200 OK' 
    output = 'Hello World!' 

    response_headers = [('Content-type', 'text/plain'), 
         ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 

    return [output] 

这里是httpd.conf文件。

LoadModule wsgi_module modules/mod_wsgi-win32-ap22py27-3.3.so 
WSGIScriptAlias/"C:/Projects/SandBox/web/" 
<Directory "C:/Projects/SandBox/web"> 
    AllowOverride None 
    Options None 
    Order deny,allow 
    Allow from all 
</Directory> 

我检查归档C:\Python27\Lib\site-packages\psycopg2-2.2.2-py2.7-win32.egg\,有C:\Python27\Lib\site-packages\psycopg2-2.2.2-py2.7-win32.egg\psycopg2\tz.py

回答

1

我的猜测是,Python不知道你的蛋缓存位置(或没有权限的话)。你只需要设置它。更多信息here。尝试设置WSGIPythonEggs指令。