[英]PyDev: Unresolved import
我在Eclipse中使用PyDev,并为我的Python项目提供了一个自定义源路径: src / main / python /。 路径已添加到PythonPath。
现在,我想使用pyMIR库: https : //github.com/jsawruk/pymir ,它没有任何安装脚本。 所以我下载了它,并将其作为Pydev软件包包含在我的项目中,pyMIR的完整路径是: src / main / python / music / pymir 。
在音乐包( src / main / python / music )中,现在我想使用该库并通过以下from pymir import AudioFile
: from pymir import AudioFile
。 没有出现错误,因此找到了AudioFile类。
之后,我想通过以下方式读取音频文件: AudioFile.open(path)
然后出现错误“来自导入的未定义变量:打开”。 但是,当我运行脚本时,它可以工作,不会发生任何错误。
此外,当我查看pyMIR软件包时,还存在未解决的导入错误。 例如: from pymir import Frame
,类AudioFile中的from pymir import Frame
产生错误:“ Unresolved import:Frame”,当我将其更改为from music.pymir import Frame
,该错误消失,但是当它运行时我得到一个错误:“ type对象“框架”没有属性“框架””。
我必须更改什么,再次导入或如何包含Pydev软件包?
当我使用标准路径“ src”创建一个新项目时,则不会出现“未解决的重要问题”错误。 src / main / python的区别在哪里? 因为我将源文件夹的路径更改为src / main / python 。
提前致谢。
我试图下载并安装pymir软件包。 有一个适合我的项目结构:
project/music/
project/music/pymir/
project/music/pymir/AudioFile
project/music/pymir/...
project/music/audio_files/01.wav
project/music/test.py
test.py:
import numpy
from pymir import AudioFile
filename = "audio_files/01.wav"
print "Opening File: " + filename
audiofile = AudioFile.open(filename)
frames = audiofile.frames(2048, numpy.hamming)
print len(frames)
如果我将“ test.py”从“音乐”包中移出,我还没有找到一种使之工作的方法。 在我看来,项目结构之所以敏感且棘手,是因为pymir软件包的结构不够好。 例如,作者将模块名称设置为“ Frame.py”,并且在模块内部将一个类命名为“ Frame”。 然后在“ __init__.py”中,代码类似于“从框架导入框架”。 在“ AudioFile.py”中,代码是“来自pymir import Frame”。 我真的认为当前pymir的命名和结构很混乱。 建议您谨慎使用此软件包
在基本文件夹位置添加“ __init__.py”空文件,即可正常工作
将pymir
文件夹解压缩到site-packages
,确保路径类似于
site-packages\\pymir site-packages\\pymir\\AudioFile.py site-packages\\pymir\\Frame.py site-packages\\pymir\\...
注释文件__init__.py
的内容
#from AudioFile import AudioFile #from Frame import Frame #from Spectrum import Spectrum
测试一下
import numpy as np import matplotlib.pyplot as plt from pymir.AudioFile import AudioFile filename = '../wavs/cxy_6s_mono_16KHz.wav' audiofile = AudioFile.open(filename) plt.plot(audiofile) plt.show() frames = audiofile.frames(2048, np.hamming) print(len(frames))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.