在 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 就找不到该包。有人遇到过这个问题吗?我已验证库文件位于正确的位置(即的子目录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
我觉得好像我没有对所有需要 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
已为组设置)。