Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python安装目录的正确权限?_Python_Permissions_Installation - Fatal编程技术网

python安装目录的正确权限?

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

我第一次尝试在服务器上使用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 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的答案)。没有更多的线索了。