版本:
Windows 2008 R2 x64
Apache 2.2.19 x86
Python 2.7.3 x86
mod_wsgi-win32-ap22py27-3.3.so
pyodbc-3.0.5.win32-py2.7
我已经验证了 Apache 可以使用 mod_wsgi 调用 Python,并且还验证了我可以从命令行导入 Python 中的 pyodbc。但是,每当我在从 Apache 调用的脚本中导入 pyodbc 时,我都会在 Apache 错误日志中看到这些错误:
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3700): Target WSGI script 'C:/Tenor/web/tcwsgi.py' cannot be loaded as Python module.
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3700): Exception occurred processing WSGI script 'C:/Tenor/web/tcwsgi.py'.
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] File "C:/Tenor/web/tcwsgi.py", line 8, in <module>
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] import tcweb
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] File "C:\\Tenor\\web\\tcweb.py", line 15, in <module>
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] from tc import config, db
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] File "C:\\Tenor\\lib\\tc\\db.py", line 6, in <module>
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] import pyodbc
[Tue Apr 17 10:26:02 2012] [error] [client 127.0.0.1] ImportError: DLL load failed: The specified module could not be found.
我已经尝试过 Dependency Walker,但它没有显示任何问题(这并不奇怪,因为我可以从 Python 命令行导入 pyodbc)。我只安装了一个版本的 Python。我尝试将 Apache 作为服务和从管理员帐户下的控制台运行。
我在另一台机器上有几乎相同的设置,不同之处在于它是 Windows 2003 Server x86。我们正在迁移到 Windows 2008 R2,我想测试生产 Web 设置,但现在卡住了。