ImportError:DLL加载失败:%1只有在Python27目录之外时才是有效的Win32应用程序

ImportError:DLL加载失败:%1只有在Python27目录之外时才是有效的Win32应用程序,python,windows,importerror,pythonpath,sys.path,Python,Windows,Importerror,Pythonpath,Sys.path,我有一个常见的异常变体“ImportError:DLL加载失败:%1不是有效的Win32应用程序”错误。只有当我在python27目录外运行python脚本时尝试导入第三方库时,才会出现此错误。例如,如果我在python27中执行“importnumpy”,它可以正常工作,但是如果我在任何其他目录中尝试导入numpy,就会出现上述错误。基本上,我可以在任何目录中运行“python”,但只有在从python27目录运行时,才能导入第三方库。如果有人知道为什么会这样,我将非常感激。这里有一些关于我的

我有一个常见的异常变体“ImportError:DLL加载失败:%1不是有效的Win32应用程序”错误。只有当我在python27目录外运行python脚本时尝试导入第三方库时,才会出现此错误。例如,如果我在python27中执行“importnumpy”,它可以正常工作,但是如果我在任何其他目录中尝试导入numpy,就会出现上述错误。基本上,我可以在任何目录中运行“python”,但只有在从python27目录运行时,才能导入第三方库。如果有人知道为什么会这样,我将非常感激。这里有一些关于我的系统路径的信息

适用的Windows系统路径:

PYTHONPATH=C:\Python27\Lib

PYTHONHOME=C:\Python27

sys.path等于:

[“”,'C:\Python27\Lib','C:\WINDOWS\SYSTEM32\Python27.zip','C:\Python27\DLLs',', 'C:\Python27\lib\plat win', 'C:\Python27\lib\libtk', 'C:\Python27', 'C:\Python27\lib\site packages',' C:\Python27\lib\site packages\win32', 'C:\Python27\lib\site packages\win32\lib', 'C:\Python27\lib\site packages\Pythonwin']

如果我运行win\u add2path.py,我会得到: 没有添加任何路径

路径现在是: C:\Users\Mike\AppData\Local\enthund\Canopy\User;C:\Users\Mike\AppData\Local\enthund\Canopy\User\Scripts;C:\Python27;C:\Python27\Scripts

扩大: C:\Users\Mike\AppData\Local\enthund\Canopy\User;C:\Users\Mike\AppData\Local\enthund\Canopy\User\Scripts;C:\Python27;C:\Python27\Scripts

我的一部分感觉是Enthow Canopy路径把它搞砸了(那个目录已经不存在了),但是Python27路径也在那里,所以它不应该是一个问题

编辑:我相信我现在知道问题的原因,但不知道如何解决。显然,在Enthound canopy文件夹中有一个python.exe,这是我的程序员正在使用的,而不是python27中的(这很奇怪,因为我卸载了Enthound canopy)。但是,我的计算机现在无法在python27中找到python.exe,即使该目录已添加到我的系统路径中。。。它给了我一个古老的“python不被认为是内部或外部命令”shindig


编辑嗯,我重新启动了命令提示符,现在它可以工作了。。。我想去掉Enthow冠层路径变量还没有生效

Python模块要么是普通的Python脚本(这里我将忽略这些脚本),要么是dll,即使它们的文件名没有表明它们是dll。您可以做的是在这样一个模块上运行,找出它所依赖的其他DLL。如果相应的DLL不在正常系统位置,MS Windows将在当前工作目录中搜索它,这解释了您遇到的差异。有关更多信息,请参阅win32函数和相关函数的文档,以了解如何解析DLL路径,这还将告诉您可以调整哪些选项以帮助系统找到依赖的DLL。

Python模块要么是普通Python脚本(我将忽略这些脚本),要么是DLL,即使它们的文件名没有表明它们是。您可以做的是在这样一个模块上运行,找出它所依赖的其他DLL。如果相应的DLL不在正常系统位置,MS Windows将在当前工作目录中搜索它,这解释了您遇到的差异。有关详细信息,请参阅win32函数和相关函数的文档,以了解如何解析DLL路径,这还将告诉您可以调整哪些选项以帮助系统找到依赖的DLL。

因此,作为参考,问题的根源是旧安装的残留物。计算机使用的是python安装(没有安装第三方库),而不是Python27中的安装。我从系统路径中删除了该安装,并重新启动了命令提示符,现在一切正常

因此,作为参考,该问题的来源是旧的Enthow雨篷装置的残留物。计算机使用的是python安装(没有安装第三方库),而不是Python27中的安装。我从系统路径中删除了该安装,并重新启动了命令提示符,现在一切正常

尝试通过设置“当前工作目录”之类的内容来执行脚本。看看你是否能做到。或者,您可以在import语句之前包含路径。后来我发现了一个很好的例子,这表明我可以做到,但问题是,我甚至可以添加什么路径?站点包的路径已在sys.path中,模块所在的位置。它应该以当前路径的方式找到它。尝试通过设置类似“当前工作目录”的内容来执行脚本。看看你是否能做到。或者,您可以在import语句之前包含路径。后来我发现了一个很好的例子,这表明我可以做到,但问题是,我甚至可以添加什么路径?站点包的路径已在sys.path中,模块所在的位置。它应该以当前路径的方式找到它。尝试通过设置类似“当前工作目录”的内容来执行脚本。看看你是否能做到。或者,您可以在import语句之前包含路径。后来我发现了一个很好的例子,这表明我可以做到,但问题是,我甚至可以添加什么路径?站点包的路径已在sys.path中,模块所在的位置。它应该按照现在的路径找到它。