无模块名pip:更改python文件夹权限后

无模块名pip:更改python文件夹权限后,python,linux,pip,fedora,Python,Linux,Pip,Fedora,以下是我在把事情搞砸之前所做的: 我尝试使用pip3安装一个软件包,在下载完成很长一段时间后,突然出现了关于权限的错误,因为我一开始忘记使用sudo,因为我不想再次下载软件包,也不知道pip缓存文件夹在哪里,我做了一件非常愚蠢的事,我更改了/usr/bin/中整个python文件夹的权限,以便在没有sudo的情况下安装软件包,之后我尝试了以下方法: pip3 install tensorflow File "/usr/bin/pip3", line 7, in <module>

以下是我在把事情搞砸之前所做的:

我尝试使用pip3安装一个软件包,在下载完成很长一段时间后,突然出现了关于权限的错误,因为我一开始忘记使用sudo,因为我不想再次下载软件包,也不知道pip缓存文件夹在哪里,我做了一件非常愚蠢的事,我更改了/usr/bin/中整个python文件夹的权限,以便在没有sudo的情况下安装软件包,之后我尝试了以下方法:

pip3 install tensorflow
File "/usr/bin/pip3", line 7, in <module>
    from pip import main
ImportError: No module named 'pip'
pip3安装tensorflow
文件“/usr/bin/pip3”,第7行,在
从pip导入主
ImportError:没有名为“pip”的模块
我犯了这些该死的错误, 有人能帮我修一下吗

编辑: 以下是我使用的命令的顺序:

1-
pip3安装tensorflow
--出现了错误

2-
sudofind/usr/lib/python3.5/-type d-execchmod766{}


3-
sudofind/usr/lib/python3.5/-type f-execchmod766{} 

首先,最重要的是,我认为你的做法很不明智。您现在已经更改了所有者、组和其他人的所有文件和目录的权限

原则上,您只需要确保
pip3
(扩展为您的用户帐户)能够在root拥有的目录中写入文件和目录(大概是
/usr/lib/python3.5/site packages
)。您可以通过以下方式完成此任务:

sudo chmod o+w /usr/lib/python3.5/site-packages
或者,您也可以更改此文件夹的所有权重要提示:在做这类事情时,一定要知道自己在做什么,不要忘了尽快将所有内容更改回来。事情可能会被破坏,安全问题也可能会产生。

现在来看看你问题的解决办法。现在,您已经为目录授予了以下权限
-rwxrw-rw-
(6=4(读)+2(写))。但是,对于用户和代表其执行的程序来说,对目录执行任何操作都需要执行权限。为此,您应该使用5而不是6(5=4(读取)+1(执行))。要更正:

sudo find /usr/lib/python3.5/ -type d -exec chmod 755 {} \;
然后,我认为Python要正确加载已编译的库(共享对象或
.so
文件),它们也应该具有这些权限。从我自己的Python目录来看,我可能会:

sudo find /usr/lib/python3.5/ -type f -exec chmod 644 {} \;
sudo find /usr/lib/python3.5/ -type f -iname '*.so' -exec chmod 755 {} \;
将一切恢复到原始状态


P.S.P.S.我在<代码> PIP < /代码>中没有专家,所以我不知道协议是如何避免在重新安装失败的安装时重新下载“代码> PIP < /代码>。

首先,最重要的是,我认为您的方法非常不明智。您现在已经更改了所有者、组和其他人的所有文件和目录的权限

原则上,您只需要确保
pip3
(扩展为您的用户帐户)能够在root拥有的目录中写入文件和目录(大概是
/usr/lib/python3.5/site packages
)。您可以通过以下方式完成此任务:

sudo chmod o+w /usr/lib/python3.5/site-packages
或者,您也可以更改此文件夹的所有权重要提示:在做这类事情时,一定要知道自己在做什么,不要忘了尽快将所有内容更改回来。事情可能会被破坏,安全问题也可能会产生。

现在来看看你问题的解决办法。现在,您已经为目录授予了以下权限
-rwxrw-rw-
(6=4(读)+2(写))。但是,对于用户和代表其执行的程序来说,对目录执行任何操作都需要执行权限。为此,您应该使用5而不是6(5=4(读取)+1(执行))。要更正:

sudo find /usr/lib/python3.5/ -type d -exec chmod 755 {} \;
然后,我认为Python要正确加载已编译的库(共享对象或
.so
文件),它们也应该具有这些权限。从我自己的Python目录来看,我可能会:

sudo find /usr/lib/python3.5/ -type f -exec chmod 644 {} \;
sudo find /usr/lib/python3.5/ -type f -iname '*.so' -exec chmod 755 {} \;
将一切恢复到原始状态


另外,我不是
pip
方面的专家,因此我不知道协议是什么,以避免在重试失败的安装时重新下载
pip

尝试
pip
而不是
pip3
我想在python3版本中安装软件包,默认情况下,我认为pip安装在python2.7中是因为当我尝试pip安装时。。它开始下载againTo Clearify,你能列出要使用的命令序列吗(我从3开始就猜到了)?因此你在同一台机器上安装了
python3
python2
?也许您的
python2
可执行文件比
python3
路径变量
中首先。。您可以做的是启动
python3
终端并键入
pip安装tensorflow
。或者修复
path变量
,以指示必须首先执行
python3
可执行文件。另外,我认为您之前获得的权限问题涉及
/usr/local/lib/…
文件夹(大多数Linux发行版上都存储了这些包),而您提到您更改了路径(指向可执行文件是用
pip
而不是
pip3
存储的。我想在python3版本中安装这个包,默认情况下,pip安装在python2.7中,我想是因为我尝试了pip安装。。它开始下载againTo Clearify,你能列出要使用的命令序列吗(我从3开始就猜到了)?因此你在同一台机器上安装了
python3
python2
?在
路径变量中,您的
python2
可执行文件可能排在
python3
之前。。您可以做的是启动
python3
终端并键入
pip安装tensorflow
。或者修复
path变量
,以指示必须首先执行
python3
可执行文件。另外,我认为您之前获得的权限问题涉及到
/usr/local/lib/…
文件夹(其中存储了包)