Reputation: 1264
I want to use this framework called Music21.
In the shell everything works fine. For example, the command:
from music21 import corpus
works perfectly. In the IDE there is an import error.
the music21 path is:
>>> music21.__file__
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/music21/__init__.pyc'
I put this path in the IDE:
EDIT: the commands:
import music21
print dir(music21)
gives me in the shell:
['DefinedContexts', 'DefinedContextsException', 'ElementException', 'ElementWrapper', 'GroupException', 'Groups', 'JSONSerializer', 'JSONSerializerException', 'Music21Exception', 'Music21Object', 'Music21ObjectException', 'Test', 'TestMock', 'VERSION', 'VERSION_STR', 'WEAKREF_ACTIVE', 'all', 'builtins', 'doc', 'file', 'name', 'package', 'path', 'abc', 'abj', 'analysis', 'articulations', 'bar', 'base', 'beam', 'chord', 'chordTables', 'clef', 'codecs', 'common', 'composition', 'configure', 'converter', 'copy', 'corpus', 'counterpoint', 'defaults', 'demos', 'derivation', 'doc', 'doctest', 'duration', 'dynamics', 'editorial', 'environLocal', 'environment', 'expressions', 'figuredBass', 'graph', 'humdrum', 'inspect', 'instrument', 'interval', 'intervalNetwork', 'json', 'key', 'layout', 'lily', 'mainTest', 'matplotlib', 'medren', 'metadata', 'meter', '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']
and in the IDE:
['author', 'builtins', 'date', 'doc', 'file', 'name', 'package', 'music21']
Upvotes: 1
Views: 227
Reputation: 3648
It looks like you've installed music21 inside a folder also called music21 and that latter (outside) folder is in your path in your IDE, but the inner folder is in your path in other cases. So when you type "import music21" in your IDE you've imported the outside folder and you'd need to type this obscure command "from music21 import music21" to get to the actual toolkit.
--
If "corpus" is the only problem you're seeing, I am guessing that you have two different versions of music21 installed and one of them was the "noCorpus" version of the toolkit from: http://code.google.com/p/music21/downloads/list
The only reason we've made a noCorpus version is that some of the files there are not world-wide Free software (they're all totally licensed for the US) and a Linux Dist. wanted to package music21 with it but couldn't include some of the corpus files. Unless you're really low on disk space or upholding Mexican copyright law of life+100, etc., you probably don't need the noCorpus version.
Upvotes: 0
Reputation: 22679
In Python, every directory than contains __init__.py
is a package. And the sys.path
contains the directories in which Python searches for the packages, so you should use
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/'
to be able to import music and other packages from that directory.
Upvotes: 1