1

На Mac OSX 10.6 я установил пакет music21 для python, используя

python setup.py install

в каталоге, названном в

distutils.sysconfig.get_python_lib()

который был

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

Теперь, если я запускаю Python в качестве администратора, как

sudo python

тогда я могу получить в пакете:

>> import music21

но если я запускаю Python без прав администратора, Python не может найти пакет. Кто-нибудь сталкивался с этой проблемой? Я проверил, что файлы библиотеки находятся в нужном месте (а именно, в подкаталоге music21 site-packages). Если я сделаю

chmod -R a+r *

в этом каталоге он находит пакет, но выдает исключение во время импорта. У кого-нибудь есть совет?

РЕДАКТИРОВАТЬ: Это вывод Python:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/music21/__init__.py", line 80, in <module>
    import base
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/music21/base.py", line 60, in <module>
    from music21 import tie
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/music21/tie.py", line 16, in <module>
    from music21.musicxml import translate as musicxmlTranslate
ImportError: No module named musicxml

Мне кажется, что я не чмодирую все, что нужно чмодить. Не должен ли быть простой способ, который настраивает все для обычного пользователя?

1 ответ1

1

В системах Unix привилегия r для каталога позволяет вам видеть свойства самого каталога, но вам нужна привилегия x чтобы иметь возможность просматривать его содержимое. Поэтому попробуйте сделать следующее:

chmod -R a+rX *

В отличие от a+x (строчная буква x), что означает «сделать каждый файл исполняемым и доступным для всех списков каталогов», a+X (верхний регистр x) означает «сделать каждый файл исполняемым и доступным для всех каталогов, если x привилегия уже установлена как минимум для одного пользователя, группы и других ".

Следовательно, если привилегиями являются, например, rw-r--r-- , они не будут изменены, но если они являются rw-r-xr-- , они станут rwxr-xr-x (потому что x был установлен для группы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .