导入pyodbc

时间:2017-02-21 18:08:12

标签: apache mod-wsgi pyodbc

操作系统 - Azure VM上的Ubuntu Server 14.04

尝试使用不同版本的python(3.4.3,3.6.0),apache和mod_wsgi。

使用此处的说明安装MS Native ODBC驱动程序  https://gist.github.com/joecampo/6f777a659b8132b9d6fe1c3589df394c,而pyodbc是使用pip安装的。

要调试wsgi_module,我已将django应用程序设置为以嵌入模式运行,并且:

gdb /usr/local/apache2/bin/httpd
run -X

当我访问任何导入pyodbc的函数时,wsgi失败并出现以下错误:

Program received signal SIGSEGV, Segmentation fault.
import_types () at src/pyodbcmodule.cpp:223
223 src/pyodbcmodule.cpp: No such file or directory.

从命令行运行django应用程序时,导入模块工作正常:

python3 manage.py runserver

有解决方法吗?

2 个答案:

答案 0 :(得分:0)

我在设置Python Pyramid项目时遇到了同样的问题,并且降级到以前版本的pyodbc 修复了它。

看起来这可能是pyodbc或WSGI模块中的错误。见pyodbc 4.0.9+ segfault with uwsgi #199。你可能已经知道这条线是红鲱鱼:

223 src/pyodbcmodule.cpp: No such file or directory.

该错误来自调试器,只是告诉import_types()引发异常的位置,但是搜索该文件导致我在GitHub上发布错误报告。

你显然已经知道如何调试Apache和wsgi,但对于那些没有详细说明here的人来说。

答案 1 :(得分:0)

通过添加对子解释器的支持,已在4.0.16中修复此问题。