4

我想为 python 2.6 安装 Sphinx 1.1.3。但是,我没有 sudo 权限。因此,我不想将其安装在默认位置,而是使用 --prefix 设置不同的位置。执行以下操作:

-bash-3.2$ easy_install Sphinx-1.1.3-py2.6.egg --prefix=/homes/ndeklein/python2.6/site-packages/

给我:

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-18534.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

/usr/lib/python2.4/site-packages/

我输入的前缀有问题吗?另外,我可以使用什么(我已经与其他软件包一起使用过):

python setup.py install --home=/homes/ndeklein/python2.6/site-packages/

但我找不到 setup.py 脚本。我猜 EGG 没有 setup.py 脚本,这是真的吗?

4

3 回答 3

6

你需要在包之前指定选项,所以命令应该是:

easy_install --prefix=/homes/ndeklein/python2.6/site-packages/ Sphinx-1.1.3-py2.6.egg 
于 2013-10-09T16:39:27.133 回答
4

这个网站讨论了非 root 的 python 安装。它可能对你有用...

http://www.astropython.org/tutorials/user-rootsudo-free-installation-of-python-modules7/

引用它的一点点:

用户配置文件 ~/.pydistutils.cfg 将覆盖 python 包安装的内部系统路径,将构建的库 (lib)、脚本 (bin) 和数据 (share) 重定向到用户拥有和指定的目录。您必须简单地告诉 python 安装程序这些目录所在的位置。

用户文件 ~/.pydistutils.cfg 有以下几行,使用非常明显的语法:

[install]
install_scripts = ~/usr/bin
install_data = ~/usr/share
install_lib = ~/usr/lib/python2.4/site-packages

当然,您在那里指定的任何目录都应该存在,并且您应该将它们放在 PYTHONPATH 的前面:

export PYTHONPATH=~/usr/lib/python2.4/site-packages:${PYTHONPATH}

看起来更现代的 python 安装(与链接中的内容相比)应该能够使用该~/.local目录:

easy_install --prefix=~/.local ...

还有:

easy_install --user ...

它将安装到用户特定的站点目录。

于 2012-04-04T11:23:11.637 回答
0

您可以尝试使用 easy_install 的 pip install (这些天推荐使用 pip 而不是 easy_install)

然后你可以使用

pip install --user Sphinx

如果需要,请参阅http://www.pip-installer.org/en/latest/installing.html了解如何安装 pip

您可能还想 pip install virtualenv 并在 virtualenv 中工作(其中 pip 将在本地站点包文件夹中安装所有包)。有关更多信息,请参阅http://pypi.python.org/pypi/virtualenv

于 2012-04-04T12:15:34.567 回答