Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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导入错误-DLL访问被拒绝_Python_Windows_Python Import_Administrator_Applocker - Fatal编程技术网

如何排除python导入错误-DLL访问被拒绝

如何排除python导入错误-DLL访问被拒绝,python,windows,python-import,administrator,applocker,Python,Windows,Python Import,Administrator,Applocker,我安装了一个特定的python包(netCDF4),其中包含编译代码(扩展模块)。我正在Windows10(x64)下运行Anaconda和python 3.6。从控制台导入模块时,出现以下错误: In [1]: import netCDF4 --------------------------------------------------------------------------- ImportError Traceback

我安装了一个特定的python包(netCDF4),其中包含编译代码(扩展模块)。我正在Windows10(x64)下运行Anaconda和python 3.6。从控制台导入模块时,出现以下错误:

In [1]: import netCDF4
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-9588a3d4fb24> in <module>()
----> 1 import netCDF4

C:\Program Files\Anaconda3\lib\site-packages\netCDF4\__init__.py in <module>()
      1 # init for netCDF4. package
      2 # Docstring comes from extension module _netCDF4.
----> 3 from ._netCDF4 import *
      4 # Need explicit imports for names beginning with underscores
      5 from ._netCDF4 import __doc__, __pdoc__

ImportError: DLL load failed: Access is denied.
[1]中的
:导入netCDF4
---------------------------------------------------------------------------
ImportError回溯(最近一次呼叫最后一次)
在()
---->1导入netCDF4
C:\Program Files\Anaconda3\lib\site packages\netCDF4\\uuuu init\uuuuu.py in()
1#初始化用于netCDF4。包裹
2#Docstring来自扩展模块_netCDF4。
---->3 from.\u netCDF4导入*
4#以下划线开头的名称需要显式导入
5从.u netCDF4导入uuu文档__
ImportError:DLL加载失败:访问被拒绝。
但该模块是从管理员帐户完美加载的

我怀疑一些关键的DLL文件被公司范围的安全策略阻止了,这是非常严格的。例如,除非在“program files”文件夹中,否则默认情况下会阻止二进制文件。但是我的python发行版和netCDF4包已经在这个文件夹中,所以我不知道如何解释这一点。Windows事件查看器中的AppLocker日志不显示任何阻止活动。Dependency walker工具列出的依赖项是系统库或包含在“program files”文件夹中


如何开始故障排除?我怎样才能知道发生了什么事?

经过长期的斗争,我现在有了解决办法

我在管理模式下启动python,并使用该工具记录加载了哪些DLL文件。
import netCDF4
语句加载了大约10个额外的DLL文件。然后,我在用户模式下启动python,并使用
ctypes.windell
手动加载每个库。然后,我就能够精确地找到导致问题的确切库(
hdf5.dll
)。原来
hdf5.dll
的权限不完整,因此只能加载管理员权限


虽然我的问题非常具体,但我希望我的解决方案能在相关情况下帮助他人……

经过长期的努力,我现在有了解决方案

我在管理模式下启动python,并使用该工具记录加载了哪些DLL文件。
import netCDF4
语句加载了大约10个额外的DLL文件。然后,我在用户模式下启动python,并使用
ctypes.windell
手动加载每个库。然后,我就能够精确地找到导致问题的确切库(
hdf5.dll
)。原来
hdf5.dll
的权限不完整,因此只能加载管理员权限

虽然我的问题非常具体,但我希望我的解决方案能在相关情况下帮助他人…

这对我来说很有效:

在Windows上调试DLL加载错误时,请使用lucasg的开放源代码 以及对旧的Dependency Walker软件进行更现代的重写。非常 重要的是,继续深入研究间接依赖关系,直到 您可以找到丢失的DLL

请在此下载:

也可以在没有管理员权限的情况下使用

这对我很有用:

在Windows上调试DLL加载错误时,请使用lucasg的开放源代码 以及对旧的Dependency Walker软件进行更现代的重写。非常 重要的是,继续深入研究间接依赖关系,直到 您可以找到丢失的DLL

请在此下载:


也可以在没有管理员权限的情况下使用

这对我有效:关闭防火墙。我用的是360防火墙。我把它关掉后,一切都很好。
希望这个帮助对我有用:关闭防火墙。我用的是360防火墙。我把它关掉后,一切都很好。
希望这有帮助

我想你的意思是(不是Process Explorer——我不知道它在哪里有文件句柄日志记录)。我也遇到过类似的情况,某些模块在出现“拒绝访问”错误时无法导入,Qt应用程序(如spyder)无法打开。事实证明,QtCore5.dll和某些模块的_config _uuuuu.py没有普通用户的读/读+执行权限。我想你的意思是(不是Process Explorer--我不知道它在哪里有文件句柄日志记录)。我也遇到过类似的情况,某些模块在出现“拒绝访问”错误时无法导入,Qt应用程序(如spyder)无法打开。事实证明,QtCore5.dll和某些模块的_config _; py没有普通用户的读/读+执行权限。很抱歉,我拒绝投票,但问题是如何调试,您没有提供答案。此外,公司范围内的安全策略(根据问题)不能关闭。此外,关闭防火墙是最后的临时解决方案。1。我知道你来自哪里,如果我的回答对你没有帮助,我很抱歉投反对票,但问题是如何调试,你没有提供答案。此外,公司范围内的安全策略(根据问题)不能关闭。此外,关闭防火墙是最后的临时解决方案。1。我知道你来自哪里,如果我的回答对你没有帮助,我很抱歉。