我正在尝试遵循这里的建议: Jython: ImportError: No module named multiarray( 但是当我尝试在eclipse中更改并保存nltk / metrics / segmentation.py文件时(在ubuntu 11下)我得到了
资源的父级:/usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py
被标记为只读。
/usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py
(许可被拒绝)
我已经尝试chmod 777 -r
,但这没有做任何事情。
任何人都可以在他的深度帮助一个菜鸟吗?
答案 0 :(得分:1)
Chmod的递归使用大写“R”,选项-R出现在权限之前,它们自己位于目录之前。因此:
sudo chmod -R 777 dir/name
应该做你想做的事。
但是,我总是很难告诉人们不顾一切地进行777的修改。
默认情况下,主目录之外的所有目录都是只读的。有三种类型的权限:三组用户的“读取”,“写入”,“执行”。如果在相关目录上运行命令ls -l
,您应该看到如下内容:
drwxr-xr-x 4 shannon admin 136 Oct 7 18:22 chunkers/
drwxr-xr-x 122 shannon admin 4148 Nov 1 08:22 corpora/
drwxr-xr-x 12 shannon admin 408 Nov 1 08:22 grammars/
Linux系统的安全性主要基于只有root可以执行任何操作的事实。其他人,包括您的用户名,都必须征得许可。这可能看起来很麻烦,但我们Linux用户很高兴每个人都必须征得许可。
那么,这个垃圾意味着什么:
drwxr-xr-x 4 shannon admin some-numbers date-time dir/name
drwx
:这是一个'd'(目录),用户/所有者(shannon)可以为rwx
执行以下操作。r-x
:组(在本例中为admin)可以执行以下操作:rx
(读取和执行,而不是写入)。r-x
:其他人(其他任何用户)可以执行以下操作:rx
。等等。
要编辑该文件,您可以永久性地将相关目录的所有者更改为自己:
sudo chown -R yourusername /usr/local/lib/python2.7/dist-packages/nltk/
当然,您可以通过许多不同的方式授予自己编辑内容的权限(例如,您可以sudo chgrp -R g+w dir/name
,然后确保您的用户名是现在可以编写的群组的一部分到目录)。这是一个很好的方式,使其他人可以做这个目录。
可能最好的解决方案是使用sudo和命令行编辑器编辑文件,因为你可能不会多次编辑文件,不是吗?
sudo nano /usr/local/lib/python2.7/dist-packages/nltk/metrics/segmentation.py
使用CTRL + o保存并按CTRL + x退出。
无论如何,有些答案比其他答案安全性差,但我总是对chmod 777所有事情犹豫不决。也许我被教导过于偏执。