安装 python 模块时的文件权限

安装 python 模块时的文件权限

我想sphinx-doc从源安装,所以我git clone模块然后使用sudo python setup.py install.

Using /usr/local/lib/python2.7/dist-packages/pytz-2016.4-py2.7.egg
Searching for MarkupSafe==0.23
Best match: MarkupSafe 0.23
Removing MarkupSafe 0.18 from easy-install.pth file
Adding MarkupSafe 0.23 to easy-install.pth file

Using /usr/local/lib/python2.7/dist-packages
Finished processing dependencies for Sphinx==1.4b1.dev-20160423

然后我意识到我没有使用它的权限:

$ sphinx-quickstart
bash: /usr/local/bin/sphinx-quickstart: Permission denied
$ ls -al /usr/local/bin/sphinx-quickstart 
-rwxr-x--- 1 root root 357 Apr 23 16:56 /usr/local/bin/sphinx-quickstart

问题是,如何以正确的权限安装它?

sudo当我必须使用创建文件夹或将驱动器安装到 /media时,我经常遇到此类问题。这有点偏离主题,但作为普通用户,我无法在自己的计算机上安装自己的驱动器而/media不是.这正常吗?755root

答案1

如果您想从源代码安装 Python 包,您应该在 virtualenv 中执行此操作。这样你就可以最大限度地减少破坏系统 python 的机会,并且可以只删除已安装的软件包,而不必担心删除太多。

为此,您必须首先安装 virtualenv,例如使用

 sudo apt-get install python-virtualenv

安装完成后,在某处创建一个 virtualenv 并激活它:

 sudo mkdir /opt/util
 sudo chown $USER /opt/util
 virtualenv /opt/util/sphinx-doc
 source /opt/util/sphinx-doc/bin/activate

之后运行你的

 python setup.py install

git克隆的目录中,您不必使用sudo.

只要 virtualenv 处于活动状态,您就应该能够运行sphinx-doc或创建任何(其他)实用程序python setup.py install。您还可以在 virtualenv 未激活时通过使用/opt/util/sphinx-doc/bin/<UTILNAME>(您可能想要为其创建别名)来运行它们。

/opt/util/sphinx-doc可以更改为您想要的任何内容。但是,如果将此类 virtualenv 放在一起,您可以轻松创建一些脚本来自动更新任何pip已安装的软件包、定义别名等。

相关内容