Python模块权限
我在Linux上安装了一个Python库,但我的脚本找不到这个模块。我发现这个库是以root用户的身份安装的。后来我把它的拥有者改成了我的用户,脚本就正常工作了。那么我应该把权限改成什么样,才能让所有用户都能访问这个库呢?我在想是不是应该把拥有者改回root?有没有办法只针对文件或只针对文件夹递归地设置权限?
另外,不知道为什么在Eclipse里,库的导入语句显示“未解决的导入”信息,尽管我可以正常执行脚本。如果我使用库的本地副本,这些信息就消失了。
1 个回答
7
把文件的拥有者放在一边,但要让所有模块都可以被任何人读取。目录需要设置为可执行,这样大家才能查看里面的内容。chmod
这个命令本身不能自动区分普通文件和目录,但find
命令可以,所以我们可以把它们结合起来使用。
在一台使用 Python 2.7 的普通 Linux 机器上,你可以这样做(以管理员身份):
find /usr/lib/python2.7 -type f -exec chmod a+r {} \;
find /usr/lib/python2.7 -type d -exec chmod a+x {} \;
根据需要切换到相应的目录。如果这些命令执行成功的话,是不会有任何输出的。
不过,如果你是通过正常方式安装模块(使用它们的 setup.py
脚本),那么你通常不需要做这些操作。
(我无法帮助你解决 Eclipse 的问题。)