2012-04-04 24 views
4

我想为python 2.6安装Sphinx 1.1.3。但是,我没有sudo权限。因此,而不是将它安装在默认位置,我想使用--prefix来设置不同的位置。执行以下操作:Easy_install的--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脚本。我猜EGGs没有setup.py脚本,这是真的吗?

回答

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 ... 

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

+0

Appareantly的源代码也有setup.py,所以我用这一点,但它becasue是一个非常方便的链接我接受你的回答。 – 2012-04-04 12:01:06

+0

是的,我刚刚发现这个链接有一天,我的一个同事...以前,当我没有根,我安装了一个私人版本的蟒蛇(我想要2.7无论如何...),但我书签链接,因为它看起来很有用。 – mgilson 2012-04-04 13:25:35

+0

死链接,如果你在答案中总结出来,它会很好... – 2016-07-07 23:27:09

6

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

easy_install --prefix=/homes/ndeklein/python2.6/site-packages/ Sphinx-1.1.3-py2.6.egg 
+0

刚刚解决了我的问题,并让我的一天! – Joe 2015-05-15 10:01:33

相关问题