python安装目录的正确权限?
我第一次尝试在服务器上使用python应用程序。我首先将setuptools添加为root用户:python安装目录的正确权限?,python,permissions,installation,Python,Permissions,Installation,我第一次尝试在服务器上使用python应用程序。我首先将setuptools添加为root用户: [root@servermydirectory]#yum安装python setuptools 酷。然后我尝试setup.py: [user@server mydirectory]$ python setup.py install running install error: can't create or remove files in install directory The followi
[root@servermydirectory]#yum安装python setuptools
酷。然后我尝试setup.py:
[user@server mydirectory]$ python setup.py install
running install
error: can't create or remove files in install directory
The following error occurred while trying to add or remove files in the
installation directory:
[Errno 13] Permission denied: '/usr/lib/python2.4/site-packages/test-easy-install-25752.write-test'
这个目录/usr/lib/python2.4/site packages
由root拥有,所以这是有意义的
我的问题是,我应该chmod站点包目录,还是应该以root用户身份运行setup.py?作为非root用户在系统范围内安装stuff的传统方法是使用
sudo
。这就是为什么在Python文档中都会看到这样的内容:
sudo python setup.py install
有些人更喜欢让站点包组由某个“dev”组编写,这样您就不需要这样做了。(这实际上是Mac package manager自制软件所做的。)
或者,您可以安装到每个用户站点的软件包中。不是每个项目都能做到这一点,但是任何基于现代
setuptools
的项目都应该能够做到这一点
而且,在我们进行安装时,如果您正在安装基于现代setuptools
的东西,那么最好是pip安装。
而不是python setup.py安装。除其他好处外,这将创建egg信息文件,以便将包检测为依赖项、卸载等
有关更多信息,请参阅
最后,您可能需要考虑使用A。对于Python3.3+,这是内置的as,尽管直到3.4才有自己的pip
。使用Python的早期版本,您可以安装PyPI
许多Python托管服务器环境(2.x或3.x)都预装了virtualenv
。如果不是,在系统范围内安装it当然需要您是root用户……但在这之后,您将能够安装(大多数)其他软件包进入每个项目的虚拟环境,而不是整个系统。使用pip/easy\u install安装软件包并直接运行setup.py文件需要root权限,因为它们在这些受限文件夹中读/写
通常,像www.openshift.com这样的主机为您支持virtualenv,所以您只需激活它,就可以拥有自己的每用户环境。通常禁止影响全局站点包,因为它可能是共享主机
根据我的经验,在本地安装ubuntu的笔记本电脑中,我有两种选择:
以sudo的身份运行安装
在virtualenv中运行安装
也许您的主机(如果共享)支持virtualenv。试着问他们是否支持它。你能换成虚拟电视吗?您的服务器支持virtualenv吗?好问题-尚未在此服务器上尝试。我会调查的。是否有其他选择?有关更多详细信息,请参阅其他答案(例如@abarnert的答案)。没有更多的线索了。