python - ImportError:DLL加载失败:%1不是有效的Win32应用程序仅在外部Python27目录

python - ImportError:DLL加载失败:%1不是有效的Win32应用程序仅在外部Python27目录,第1张

我有一个奇怪的变体常见的“ImportError:DLL加载失败:%1不是有效的Win32应用程序”错误。当我在python27目录之外运行python脚本时尝试导入第三方库时,我只会出现此错误。例如,如果我在python27中执行“import numpy”,它工作正常,但如果我尝试在任何其他目录中导入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 \高原双赢', 'C:\ Python27 \ lib中\ libtk', 'C:\ Python27', 'C:\ Python27 \ lib \ site-packages',' C:\ Python27 \ LIB \站点包\ win32' 的, 'C:\ Python27 \ LIB \站点包\ WIN32 \ lib中', 'C:\ Python27 \ lib中\站点包\ PythonWin的']

如果我运行win_add2path.py,我会得到: 没有添加路径

路径现在是: C:\ Users \用户麦克\应用程序数据\本地\ Enthought \冠层\用户; C:\用户\麦克\应用程序数据\本地\ Enthought \冠层\用户\脚本; C:\ Python27; C:\ Python27 \脚本

展开: C:\ Users \用户麦克\应用程序数据\本地\ Enthought \冠层\用户; C:\用户\麦克\应用程序数据\本地\ Enthought \冠层\用户\脚本; C:\ Python27; C:\ Python27 \脚本

我的一部分感觉Enthought Canopy路径搞砸了(该目录不再存在),但是Python27路径也存在,所以它应该不是问题......

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

编辑好吧,我重新启动了命令提示符,现在它正常工作......我猜想删除了enthought冠层路径变量尚未生效。

最佳答案:

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复