44

我为服务器中的安装包提取、配置和使用了 make。

但是,我无法使用make install。我得到错误

[~/wepapps/python/Python-2.6.1]# make install
/usr/bin/install -c python /usr/local/bin/python2.6
/usr/bin/install: cannot create regular file `/usr/local/bin/python2.6': Permission denied
make: *** [altbininstall] Error 1

我运行文件夹

chmod +x Python-2.6.1

我仍然得到同样的错误。

如何在没有 sudo 访问权限的情况下运行make install ?

4

4 回答 4

103

如何安装到我的主目录下的路径?

mkdir /home/masi/.local

cd Python-2.6.1
make clean
./configure --prefix=/home/masi/.local
make
make install

然后使用:

/home/masi/.local/bin/python

同样,如果您有需要您自己的 Python 用户版本的脚本(例如 CGI),您必须明确告诉他们:

#!/home/masi/.local/bin/python

而不是使用“#!/usr/bin/env python”将选择的默认系统 Python。

您可以更改您的 PATH 设置以使从控制台中键入“python”运行该版本,但这对于在不同用户下运行的 Web 应用程序没有帮助。

如果您编译一些链接到 Python 的东西(例如 mod_wsgi),您必须告诉它在哪里可以找到您的 Python,否则它将使用系统版本。这通常是这样的:

./configure --prefix=/home/masi/.local --with-python=/home/masi/.local

对于其他基于 setup.py 的扩展,如 MySQLdb,您只需使用正确版本的 Python 运行 setup.py 脚本:

/home/masi/.local/bin/python setup.py install
于 2009-03-08T00:33:25.210 回答
22

截至 2020 年,pyenv在没有 sudo 权限的情况下安装 Python 是最佳选择,假设系统具有必要的构建依赖项。

# Install pyenv
$ curl https://pyenv.run | bash

# Follow the instruction to modify ~/.bashrc

# Install the latest Python from source code
$ pyenv install 3.8.3

# Check installed Python versions
$ pyenv versions

# Switch Python version
$ pyenv global 3.8.3

# Check where Python is actually installed
$ pyenv prefix
/home/admin/.pyenv/versions/3.8.3

# Check the current Python version
$ python -V
Python 3.8.3
于 2020-05-19T11:45:13.800 回答
4

扩展 bobince 答案,如果您的系统中没有安装 readline 开发包,并且您没有 root 访问权限,则会出现问题。

当 Python 在没有 readline 的情况下编译时,您的箭头键将无法在解释器中使用。但是,您可以按如下方式安装 readline 独立包:在不重新编译 Python 的情况下添加 Readline 功能

另一方面,如果您更喜欢使用本地安装的 readline 编译 python,这里是如何。

在按照 bobince 所说的做之前,编译并安装 readline。这些是这样做的步骤:

然后,将此行添加到您的 .bash_profile 脚本中:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib

最后但并非最不重要的一点是,执行以下命令

export LDFLAGS="-L$HOME/.local"

我希望这可以帮助别人!

于 2013-05-24T17:13:04.920 回答
2

你不能;/usr无论如何,不​​要。只有超级用户可以写入这些目录。尝试将 Python 安装到主目录下的路径。

于 2009-03-07T23:46:53.403 回答