因此 python 可能安装得很好。或者可能它已经在这里了(我使用的是 xubuntu 12.10)。
但是我今天尝试使用 pip 安装 networkx:
pip install networkx
然后说我没有权限。所以我执行了上面的命令。安装没有错误。
现在我无法在非 root 身份下导入 networkx。我相当确信您不必一直以 root 身份运行 python 脚本。这听起来真的很危险。
easy_install 是这样说的:
easy_install networkx
错误:无法在安装目录中创建或删除文件
尝试添加或删除安装目录中的文件时发生以下错误:
[Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-13206.pth'
您指定的安装目录(通过 --install-dir、--prefix 或 distutils 默认设置)是:
/usr/local/lib/python2.7/dist-packages/
也许您的帐户没有此目录的写权限?如果安装目录是系统拥有的目录,您可能需要以管理员或“root”帐户身份登录。如果您没有此计算机的管理权限,您可能希望选择其他安装目录,最好是 PYTHONPATH 环境变量中列出的目录。
有关其他选项的信息,您可能希望查阅以下文档:
http://packages.python.org/distribute/easy_install.html
请对您的系统进行适当的更改并重试。
我还尝试安装到 ~/.networkx(我以非 root 身份创建的子文件夹),但出现相同的权限错误。我 chmod 777 /usr/local/lib/python2.7/dist-packages 并尝试安装,出现相同的权限错误。
pip uninstall 和 sudo easy_install 会导致与 pip install 相同的问题。
顺便说一下:
python t1.py
回溯(最近一次调用最后一次):文件“t1.py”,第 3 行,在 import networkx as nx ImportError:没有名为 networkx 的模块
sudo python t1.py
H:10......更多的东西表明它正在导入并且运行良好......
显然,我在安装 Python 或……其他任何地方时都只是个菜鸟。我不知道在哪里,它可能在任何地方。有人遇到过这种情况吗?或者有人知道发生了什么吗?我需要你的帮助。谢谢。
编辑:(有关 Radoo 的更多信息)
sean@potatocake:~$./sh.sh
User is not part of the group which has access to that directory.
/usr/local/lib/python2.7/dist-packages needs access.
sean@potatocake:~$ll /usr/local/lib/
total 12
drwxrwxr-x 3 root root 4096 Mar 28 19:00 perl
drwxrwsr-x 4 root staff 4096 Oct 18 04:07 python2.7
drwxrwsr-x 3 root staff 4096 Oct 18 04:05 python3.2
sean@potatocake:~$ll /usr/local/lib/python2.7/
total 8
drwxrwsr-x 32 root staff 4096 Mar 28 23:13 dist-packages
drwxrwsr-x 2 root staff 4096 Oct 18 04:07 site-packages
注意:当非 sudo pip 仍然不起作用时,我将其 chmod 重新改为 775。
sean@potatocake:~$groups
sean adm cdrom sudo dip plugdev lpadmin sambashare
sean@potatocake:~$sudo useradd -G staff sean
useradd: user 'sean' already exists
答案1
答案2
我当然不是这方面的专家,但这是我的想法。
最好以 root 身份进行安装,这样除了 root 和 sudoers 之外,没有人可以修改您的文件和配置。所以我想您的安装没有问题。如果您想安装新软件包,您应该是 root。
至于权限错误,您说您这样做了:chmod 777 /usr/local/lib/python2.7/dist-packages
。好吧,这只会在最后提供对该目录的访问权限。您可能有一些父目录可能没有访问权限(执行权限),这可能会导致您的问题。
要检查当前用户在所有这些目录上的权限,您必须对每个目录执行如下操作(我想您可以找到更好的版本,但无论如何):
dir="<directory_path>"
user_groups=$(groups <user>)
dir_group=$(stat "$dir" | cut -d' ' -f6)
if ! [[ "$dir_group" =~ "\\b$user_groups\\b" ]]; then printf "User is not part of the group which has access to that directory.\n"; fi
dir_access=$(stat "$dir" | cut -d' ' -f3)
group_dir_exec_access=${dir_access:6:1}
if [ "$group_dir_exec_access" != "x" ]; then printf "This dir needs access.\n"; <add some sudo chmod stuff to give access to group> fi
我希望这有帮助。
答案3
我在安装时遇到了同样的问题建造者。我执行了以下命令,它对我有用。尝试:
- 将目录更改为Python2.7
sudo chmod 777 dist-packages
sudo chmod 777 etc
- 进而
python2.7 setup.py install
它对我有用!