2012-01-03 60 views
0

我试图将模块导入python,但有困难。尽管目录出现在路径中导入python模块时遇到问题

我已经定义了包含C:\MyModules的环境变量PYTHONPATH。

当我问到有关路径的问题时,我从Python 2.7中获得以下内容。

>>> import sys 
>>> sys.path 
['', 'C:\\MyModules', 'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] 

C:\MyModules包含模块foo.pyd。我知道foo.pyd是一个工作模块,因为它适用于其他计算机。

当我尝试导入FOO,出现这种情况:

>>> import foo 
Traceback (most recent call last): 
    File "<string>", line 1, in <fragment> 
ImportError: DLL load failed: The specified module could not be found. 

什么是这可能发生的可能原因是什么?

+1

你很可能错过了一些第三方依赖项。 – 2012-01-03 12:23:28

+0

由于在foo.pyd取决于我没有安装在我的电脑上的程序? – Derek 2012-01-03 12:25:12

+3

运行它:http://www.dependencywalker.com/ – 2012-01-03 12:25:34

回答

1

您错过了依赖关系,请通过Dependency Walker运行它。

至于你在评论中的问题。我只能假设它试图导入的模块是用C编写的,这影响了Python的回溯。

决定将此作为回答提交

+0

是的,它是用C++编写的,很好猜!我感到惊讶的是,Python并没有抱怨它的回溯无法正常工作,或者沿着这些方向行事。它让我想知道为什么python找不到这个模块。 – Derek 2012-01-03 13:36:20

+1

不要混淆python模块和未找到的模块 - 哪个模块是第三方依赖模块。 foo.pyd被发现是正确的,但在加载foo.pyd时找不到它所依赖的模块。 – Glider 2012-01-03 13:59:39

+0

好吧,所以'DLL加载失败:'是说它找到了DLL,但是加载失败了? “指定的模块”是DLL指定的模块,而不是我说'import foo'时指定的模块?这更有意义。谢谢。 – Derek 2012-01-03 15:10:51