没有sudo访问权限,无法安装Python

时间:2009-03-07 23:42:54

标签: python installation sudo

我在服务器中解压缩,配置并使用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 个答案:

答案 0 :(得分:94)

  

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

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

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

/home/masi/.local/bin/python setup.py install

答案 1 :(得分:7)

从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

答案 2 :(得分:2)

你不能;反正不是/usr。只有超级用户才能写入这些目录。尝试将Python安装到主目录下的路径中。

答案 3 :(得分:2)

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

编译Python时没有readline,你的箭头键在解释器中不起作用。但是,您可以按如下方式安装readline独立包:Adding Readline Functionality Without Recompiling Python

另一方面,如果你更喜欢使用readline的本地安装来编译python,那么就是这样。

在做bobince告诉之前,编译并安装readline。以下是执行此操作的步骤:

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

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

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

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

我希望这有助于某人!