Python 包仅以管理员身份运行

Python 包仅以管理员身份运行

在 Mac OSX 10.6 上,我使用以下命令安装了 Python 的 music21 包

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 就找不到该包。有人遇到过这个问题吗?我已验证库文件位于正确的位置(即的子目录music21site-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

我觉得好像我没有对所有需要 chmod 的内容进行 chmod 处理。难道不应该有一种简单的方法可以为普通用户配置所有内容吗?

答案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已为组设置)。

相关内容