Python apache2+;mod_wsgi

Python apache2+;mod_wsgi,python,apache2,mingw,lxml,cx-oracle,Python,Apache2,Mingw,Lxml,Cx Oracle,当我使用apache2+modwsgi启动应用程序时 我抓住 异常类型:ImportError 异常值:DLL加载失败:找不到指定的模块。 一致 from lxml import etree 从lxml导入etree 使用Django开发服务器,一切正常 Visual C++可重新分配2008安装< /P> Dependency walker告诉我们缺少msvcrt90.dll 但cx_Oracle也有同样的情况,但cx_Oracle的dll加载正确 有什么想法吗 windows 2003服务器

当我使用apache2+modwsgi启动应用程序时 我抓住

异常类型:ImportError 异常值:DLL加载失败:找不到指定的模块。 一致

from lxml import etree 从lxml导入etree 使用Django开发服务器,一切正常 Visual C++可重新分配2008安装< /P> Dependency walker告诉我们缺少msvcrt90.dll 但cx_Oracle也有同样的情况,但cx_Oracle的dll加载正确

有什么想法吗

windows 2003服务器64位和windows XP sp3 32位 python 2.7 32位 cx_Oracle 5.0.4 32位

UPD: 下载libxml2-2.7.7和libxslt-1.1.26

尝试使用setup.py build--编译器mingw32生成

Building lxml version 2.3. Building with Cython 0.14.1. ERROR: 'xslt-config' is not recognized as an internal or external command, operable program or batch file. ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running build running build_py running build_ext skipping 'src/lxml\lxml.etree.c' Cython extension (up-to-date) building 'lxml.etree' extension C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c src/lxml\lxml.etree.c -o build\temp.win32-2.7\Release\src\lxml\lxml.et ree.o -w writing build\temp.win32-2.7\Release\src\lxml\etree.def C:\MinGW\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\src\lxml\lxml.etree.o build\temp.win32-2.7\Release\src\lxml\etree.def -LC:\Python27\lib s -LC:\Python27\PCbuild -llibxslt -llibexslt -llibxml2 -liconv -lzlib -lWS2_32 -lpython27 -lmsvcr90 -o build\lib.win32-2.7\lxml\etree.pyd build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd11): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd24): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1ee92): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1eed6): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2159e): undefined reference to `_imp__xmlMalloc' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e741): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e784): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f157): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f19a): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ac): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ef): more undefined references to `_imp__xmlFree' follow build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1ad5): undefined reference to `xsltLibxsltVersion' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1b9a): undefined reference to `xsltDocDefaultLoader' collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 构建lxml版本2.3。 使用Cython 0.14.1的建筑。 错误:“xslt config”未被识别为内部或外部命令, 可操作的程序或批处理文件。 **确保已安装libxml2和libxslt的开发包** 使用libxslt的构建配置 运行构建 运行build\u py 运行build_ext 正在跳过'src/lxml\lxml.etree.c'Cython扩展名(最新) 构建“lxml.etree”扩展 C:\MinGW\bin\gcc.exe-mno cygwin-mdll-O-Wall-IC:\Python27\include-IC:\Python27\PC-C src/lxml\lxml.etree.C-O build\temp.win32-2.7\Release\src\lxml\lxml.et ree.o-w 正在编写build\temp.win32-2.7\Release\src\lxml\etree.def C:\MinGW\bin\gcc.exe-mno cygwin-shared-s build\temp.win32-2.7\Release\src\lxml\lxml.etree.o build\temp.win32-2.7\Release\src\lxml\etree.def-LC:\Python27\lib s-LC:\Python27\PCbuild-llibxslt-llibexslt-llibxml2-liconv-lzlib-lWS2\u 32-lpython27-lmsvcr90-o build\lib.win32-2.7\lxml\etree.pyd build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd11):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd24):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1ee92):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1eed6):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2159e):未定义对“\u imp\u xmlMalloc”的引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e741):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e784):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f157):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f19a):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ac):对“imp\uxmlfree”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ef):下面是对“\u imp\u xmlFree”的更多未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1ad5):对“xsltLibxsltVersion”的未定义引用 build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1b9a):对“xsltDocDefaultLoader”的未定义引用 collect2:ld返回了1个退出状态 错误:命令“gcc”失败,退出状态为1 UPD2
我理解为什么导入cx_Oracle工作正常:cx_Oracle.pyd包含“MSVCRT.dll”依赖项,而etree.pyd没有它

这确实是因为“msvcrt90.dll”。在Python2.6的微补丁修订版中,他们停止为扩展模块自动构建DLL依赖项,而是依赖Python可执行文件来完成。但是,当嵌入到其他系统中时,您依赖于链接到DLL的可执行文件,而Apache则不依赖。因此,Python的变化打破了许多在Windows上嵌入Python的系统,唯一的解决方案是每个扩展模块都对所需的DLL有自己的依赖关系,而许多扩展模块都没有。psycopg2扩展受到了严重的影响,他们现在已经更改了构建,将依赖项添加回自己的内部。您可以在psycopg2出现问题时搜索该问题。解决方案之一是在Windows上使用MinGW编译器重建扩展

Building lxml version 2.3. Building with Cython 0.14.1. ERROR: 'xslt-config' is not recognized as an internal or external command, operable program or batch file. ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running build running build_py running build_ext skipping 'src/lxml\lxml.etree.c' Cython extension (up-to-date) building 'lxml.etree' extension C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c src/lxml\lxml.etree.c -o build\temp.win32-2.7\Release\src\lxml\lxml.et ree.o -w writing build\temp.win32-2.7\Release\src\lxml\etree.def C:\MinGW\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\src\lxml\lxml.etree.o build\temp.win32-2.7\Release\src\lxml\etree.def -LC:\Python27\lib s -LC:\Python27\PCbuild -llibxslt -llibexslt -llibxml2 -liconv -lzlib -lWS2_32 -lpython27 -lmsvcr90 -o build\lib.win32-2.7\lxml\etree.pyd build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd11): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xd24): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1ee92): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x1eed6): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2159e): undefined reference to `_imp__xmlMalloc' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e741): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x2e784): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f157): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f19a): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ac): undefined reference to `_imp__xmlFree' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0x3f4ef): more undefined references to `_imp__xmlFree' follow build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1ad5): undefined reference to `xsltLibxsltVersion' build\temp.win32-2.7\Release\src\lxml\lxml.etree.o:lxml.etree.c:(.text+0xb1b9a): undefined reference to `xsltDocDefaultLoader' collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1