如何在没有root权限的CentOS上安装Python?

如何在没有root权限的CentOS上安装Python?

由于某些原因,我需要在没有 root 权限的情况下在 CentOS 上安装 Python。由于没有root,无法使用yum安装包,所以我尝试了

./configure --prefix=$HOME/tools/python
make
make install

它确实起作用了。但是,当我尝试为其安装 setuptools 时,通过

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | python - --user --insecure

Python 抱怨说

urllib2.URLError: <urlopen error unknown url type: https>

看来 Python 与 openssl lib 的编译不好。所以我从它的网站下载了setuptools,取消存档,然后运行

python setup.py install

并得到了

RuntimeError: Compression requires the (missing) zlib module

因此,需要重新编译并重新安装Python。这次,在配置 Python 之前,我通过添加 手动安装了 zlib、openssl 和 libffi,--prefix="$HOME/tools/foo"因为我没有写入/usr/foo/bar.

之后,我尝试使用标志配置 Python,例如--with-zlib=$HOME/tools/zlib.再次不幸的是,Python 在屏幕上显示了一行,表示这些标志是未知的。然后我尝试修改/Modules/Setup.dist,期望可以通过取消注释以下行来指定这些库的路径:

#SSL=/home/foo/tools/openssl-1.0.0s
#_ssl _ssl.c \
#       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#       -L$(SSL)/lib -lssl -lcrypto
......
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 

这一次,事情变得更糟,编译停止了

./Modules/zlibmodule.c:8:18: error: zlib.h: No such file or directory

我搜索了整个网络,但一无所获。因此,我来​​到这里提出一个问题:如何在没有 root 权限的 CentOS 上安装带有 zlib、openssl 和 libffi 等的 Python?

答案1

您可以从主目录运行 Python + 工具。
https://www.continuum.io/downloads获取 Anaconda,它包含此处列出的所有这些软件包: http://docs.continuum.io/anaconda/pkg-docs包括 libFFI、openssl 和 zlib。

安装后,重新启动终端和 wallah。 ($PATH 会为您而更改,并且只为您更改,因此您的系统软件不受影响,并且无需向管理员发送电子邮件。)

如果您需要此处未列出的其他软件包,您可以使用 conda、pip 或 setup.py 来获取更多软件包。

继续前进,变得很棒。

答案2

解决此问题的一种方法是安装pyenv然后用它来安装你想要的Python版本。为我工作!

答案3

您是否有权访问 /etc/sudoers 或者您可以告诉您的管理员为您添加此内容吗?您可能想添加到此文件中, username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude, /usr/bin/whatever 这样您就不需要 sudo 来访问文件了。

答案4

您可以使用独立构建https://github.com/indygreg/python-build-standalone

使用步骤:

unzstd <cpython file name>.zstd
tar -xvf <cpython file name>.tar
./python/install/bin/python3

相关内容