Python模块权限

2 投票
1 回答
8861 浏览
提问于 2025-04-17 14:56

我在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 的问题。)

撰写回答