Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python lxml:DLL加载失败:找不到指定的模块_Python_Windows_Django_Lxml - Fatal编程技术网

Python lxml:DLL加载失败:找不到指定的模块

Python lxml:DLL加载失败:找不到指定的模块,python,windows,django,lxml,Python,Windows,Django,Lxml,我有Windows Server 2008 R2 x64。 它在wsgi下运行了Python27 x86+Django 1.3+apache2.2 x86。没有lxml,它运行正常 我们使用的是soaplib,它需要lxml。我尝试了几种方法安装lxml: 使用简易安装 正在下载win32安装二进制文件 问题是在apache下的站点下运行会引发以下错误: ImportError at / DLL load failed: The specified module could not be fou

我有Windows Server 2008 R2 x64。 它在wsgi下运行了
Python27 x86+Django 1.3+apache2.2 x86
。没有lxml,它运行正常

我们使用的是soaplib,它需要lxml。我尝试了几种方法安装lxml:

  • 使用简易安装
  • 正在下载win32安装二进制文件
  • 问题是在apache下的站点下运行会引发以下错误:

    ImportError at /
    DLL load failed: The specified module could not be found.
    
    它在lxml导入etree的
    上引发此错误

    我在谷歌上搜索了这个解决方案,但没有找到任何有用的。我发现的一些信息:

  • python26->python27中有一些改变,改变了DLL的内容
  • 我使用dependency walker查找缺少哪些DLL。我发现缺少的是:gpsvc.dll、IEShims.dll、msvcr90.dll。当我尝试安装x86可再发行软件包时,它没有改变任何东西。我尝试将msvcr90.dll复制到lxml的egg dir,它创建了另一个错误,表示无法加载dll(我不记得确切的异常,但如果需要,我可以生成它)
  • 通过运行
    manage.py runserver


    我如何解决这个问题?谢谢。

    安装DLL是不够的,您需要修改Apache才能使用它们。见:


    我从安装了非官方版本


    它解决了我的问题。

    我在尝试通过Windows脚本主机加载etree时也遇到了这个问题。在尝试了不同的方法之后,我遇到了Python 3.1的变化,它建议新的Python模块不应再嵌入清单,因为它会在没有安装MSVC++运行时的情况下导致分发问题:

    因此,我只是在Resource Hacker()中加载了%PythonPath%\Lib\site packages\lxml\etree.pyd,并删除了其中嵌入的清单资源。

    最简单的解决方案是: 步骤1:pip卸载lxml步骤 2:pip安装lxml

    然而,在通过lxml-4.6.3.tar.gz重新安装lxml时,我遇到了一些问题。
    因此,我尝试通过相应的.whl文件重新安装,并成功

    “资源黑客”删除嵌入的清单对我来说很有效。我使用activestate python 2.7.2,运行python.exe script.py运行良好,无需对lxml包进行任何修改,而当我尝试在vim脚本中加载python脚本时,我遇到了相同的错误。删除清单后,它运行良好。根据您的描述,我不确定Resource Hacker中该文件显示的XML的哪一部分是“清单资源”。这就是“manifestVersion”属性吗?对于windows:我去了lfd.uci.edu/~gohlke/pythonlibs/#lxml站点(这个人应该得到奖章!),并且有很多可能下载lxml。我有32位的Python 3.6。我看到了lxml的4.0版本,lxml-4.0.0-cp36-cp36m-win32.whl。所以,我想“新版本,我会有一个”,安装了它,但仍然得到了错误。然后我安装了3.8版本,lxml-3.8.0-cp36-cp36m-win32.whl,它的工作方式很有魅力。我不知道64位Python的情况如何,您的里程可能会有所不同。为我工作(win10 x64,Python 3.6):1:pip卸载lxml 2:dwnd此lxml-3.8.0-cp36-cp36m-win_amd64 3:pip安装“C:\Users\me\Desktop\lxml-3.8.0-cp36-cp36m-win_amd64.whl”对于windows,您需要visual studio 2015。但如果您遵循以下步骤,它可以与visual studio 2017配合使用: