Python导入错误+ DLL加载失败+ sys.path

时间:2015-10-11 18:37:07

标签: python

在Python 2.7.10 Anaconda 2.3.0(64位)中,如果我写

sys.path.append('C:\\Anaconda\\sms-tools-master\\software\\models\\utilFunctions_C\\')
print sys.path

我得到了

C:\ Anaconda \ sms-tools-master \ workspace \ A1> python A1Part1.py ['C:\ Anaconda \ sms-tools-master \ workspace \ A1','C:\ Anaconda \ python27.zip', 'C:\ Anaconda \ DLLs','C:\ Anaconda \ lib','C:\ Anaconda \ lib \ plat-win','C:\ A naconda \ lib \ lib-tk','C:\ Anaconda','C:\ Anaconda \ lib \ site-packages','C:\ Anaconda \ lib \ site-packages \ Sphinx-1.3.1-py2.7.egg','C:\ Anaconda \ lib \ site- packages \ cryptography-0.9.1-py2.7-win-amd64.egg','C:\ Anaconda \ lib \ site-pack age \ win32','C:\ Anaconda \ lib \ site-packages \ win32 \ lib','C:\ Anaconda \ lib \ site-packages \ Pythonwin','C:\ Anaconda \ lib \ site-packages \ setuptools-17.1。 1-py2.7.egg','C:\ Anaconda \ sms-tools-master \ software \ models \ utilFunctions_C \']

  1. 这种添加到sys.path的绝对方式是否正确?有相对的方式吗?
  2. 在我编写的下一行python代码中

    来自utilFunctions_C import wavread

  3. 我立即获得

      

    ImportError:无法导入名称wavread

    如果我在cmd中运行代码,但如果我在IDLE中运行代码,我会得到:

      

    [ 'C:\阿纳康达\ SMS-工具主\工作空间\ A1',   'C:\ Python27 \ Lib \ idlelib','C:\ Windows \ system32 \ 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:\阿纳康达\ SMS-工具主\ SOFTWARE \模型\ utilFunctions_C \']

         

    Traceback(最近一次调用最后一次):文件   “C:\ Anaconda \ sms-tools-master \ workspace \ A1 \ A1Part1.py”,第8行,in          from utilFunctions_C import wavread ImportError:DLL加载失败:%1不是有效的Win32应用程序。

    那么为什么存在差异以及如何解决这个问题呢?日Thnx!

1 个答案:

答案 0 :(得分:0)

我发表了评论

from utilFunctions_C import wavread

并使用

from scipy.io.wavfile import read

现在我的代码还可以。我找到了

  

utiLFunctions.wavread()是一个使用scipy.io.wavfile.read()的包装器   并将数据缩放到介于-1和1之间的浮点。如果打开   utilFunctions.py你会看到。

     

只要缩放数据,您也可以使用scipy.io.wavfile.read   正确查看wav文件中的数据类型。由于缩放,为   将样本存储为int16的wav文件,您将看到   scipy.io.wavfile.read返回值将是值的32767倍   由utilFunctions.wavread返回

     

讲座使用该函数更明确地解释过程。   一旦获得它,就可以使用包装器utilFunctions.wavread   在课程的其余部分和实际应用中。

滚动浏览 https://class.coursera.org/audio-002/forum/search q=Cannot+import+name+wavread#15-state-query=wavread&15-state-page_num=1

了解更多详情。