导入子文件夹与外部文件夹相同的位置

时间:2011-06-14 22:05:24

标签: python music21

我想使用名为Music21的这个框架。

在shell中一切正常。例如,命令:

from music21 import corpus

完美无缺。在IDE中存在导入错误。

music21路径是:

>>> music21.__file__
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/music21/__init__.pyc'

我将此路径放在IDE中: enter image description here

编辑:命令:

  

导入音乐21   print dir(music21)

让我进入shell:

  
    
      

['DefinedContexts','DefinedContextsException','ElementException','ElementWrapper','GroupException','Groups','JSONSerializer','JSONSerializerException','Music21Exception','Music21Object','Music21ObjectException','Test ','TestMock','VERSION','VERSION_STR','WEAKREF_ACTIVE','所有','内置',' doc ' ,'文件','名称','','路径','abc',' abj','analysis','articulations','bar','base','beam','chord','chordTables','clef','codecs','common','composition','configure' ,'转换','复制','语料库','对位','默认','演示','派生','doc','doctest','持续时间','动态','社论',' environLocal','environment','expressions','figuredBass','graph','humdrum','inspect','instrument','interval','intervalNetwork','json','key','layout' ,'lily','mainTest','matplotlib','medren','元数据','米','midi','musedata',' musicxml','note','numpy','parse','pitch','ratios','repeat','roman','romanText','scale','serial','sieve','spanner' ,'stream','sys','tempo','test','text','tie','tinyNotation','trecento','types','unittest','uuid','voiceLeading','的XMLNode']

    
  

并在IDE中:

  
    
      

['作者','内置','日期',' doc ','< strong>文件','名称','','music21']

    
  

3 个答案:

答案 0 :(得分:1)

路径应该是正确的python可执行文件或其文件夹。

答案 1 :(得分:1)

在Python中,包含__init__.py的每个目录都是一个包。 sys.path包含Python搜索包的目录,因此您应该使用

'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/'

能够从该目录导入音乐和其他包。

答案 2 :(得分:0)

看起来您已经在一个名为music21的文件夹中安装了music21,而后一个(外部)文件夹位于IDE的路径中,但在其他情况下,内部文件夹位于您的路径中。因此,当您在IDE中键入“import music21”时,您已导入外部文件夹,并且您需要输入“来自music21 import music21”的这个模糊命令才能获得实际的工具包。

-

如果“语料库”是您遇到的唯一问题,我猜您安装了两个不同版本的music21,其中一个是工具包的“noCorpus”版本:http://code.google.com/p/music21/downloads/list

我们制作noCorpus版本的唯一原因是,有些文件不是全球免费软件(它们都是完全获得美国许可)和Linux Dist。我想用它打包music21,但不能包含一些语料库文件。除非您的磁盘空间非常低或坚持墨西哥版权法+ 100等,否则您可能不需要noCorpus版本。