Pacote Python funciona apenas como administrador


1

No Mac OSX 10.6, instalei o pacote music21 para python usando

python setup.py install

no diretório nomeado em

distutils.sysconfig.get_python_lib()

que foi

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

Agora, se eu executar o Python como administrador, como

sudo python

então eu posso pegar o pacote:

>> import music21

mas se eu executar o Python sem privilégios de administrador, o Python não poderá encontrar o pacote. Alguém já encontrou este problema? Eu verifiquei que os arquivos da biblioteca estão no lugar certo (a saber, um subdiretório music21de site-packages). Se eu fizer

chmod -R a+r *

nesse diretório, ele encontra o pacote, mas lança uma exceção durante a importação. Alguém tem algum conselho?

EDIT: Esta é a saída do 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

Parece-me que não estou modificando tudo o que precisa ser modificado. Não deveria haver uma maneira simples de configurar tudo para um usuário comum?


Qual é a exceção no último parágrafo?
ed.

Respostas:


1

Nos sistemas Unix, o rprivilégio em um diretório permite ver as propriedades do próprio diretório, mas você precisa do xprivilégio de poder listar seu conteúdo. Portanto, tente fazer o seguinte:

chmod -R a+rX *

Ao contrário de a+x(x minúsculo), que significa "tornar todos os arquivos executáveis ​​e diretórios na lista para todos", a+X(x maiúsculo) significa "tornar todos os arquivos executáveis ​​e diretórios na lista para todos se o xprivilégio já estiver definido como menos um usuário, grupo e outro ".

Se, portanto, os privilégios forem, por exemplo, rw-r--r--eles não serão alterados, mas, se forem rw-r-xr--, serão rwxr-xr-x(porque xforam definidos para o grupo).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.