【问题标题】:Python Import Error + DLL load failed + sys.pathPython 导入错误 + DLL 加载失败 + sys.path
【发布时间】:2016-01-09 04:43:40
【问题描述】:

如果我写的话,在 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- 包\cryptography-0.9.1-py2.7-win-amd64.egg', 'C:\Anaconda\lib\site-pack 年龄\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 导入 wavread

我立刻明白了

ImportError: 无法导入名称 wavread

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

['C:\Anaconda\sms-tools-master\workspace\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:\Anaconda\sms-tools-master\software\models\utilFunctions_C\']

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

那么为什么会有差异以及如何解决这个问题?谢谢!

【问题讨论】:

    标签: python


    【解决方案1】:

    我评论了

    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 返回

    Lectures 使用该功能更明确地解释了该过程。 一旦你得到它,你可以使用包装器 utilFunctions.wavread 在课程的其余部分和实际应用中。

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

    了解更多详情。

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2018-08-13
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      相关资源
      最近更新 更多