Ubuntu预装了Python 2.7.2+。 (我还下载了python开发包。)由于我有另一个问题(在How do I replace/update the version of the expat library used by Apache?中进行了深入解释),Graham Dumpleton告诉我,我的发行版已经明确地构建了Python以使用外部pyexpat实现,所以导致我的问题。他还说我可以自己从源代码构建Python来解决这个问题。我如何在Ubuntu上执行此操作? (请记住,我是Linux的新手。)
答案 0 :(得分:39)
在shell提示符下(在终端中),运行
sudo apt-get install build-essential
这将获取构建任何内容所需的所有常见包(例如编译器等)。
然后运行
sudo apt-get build-dep python2.7
这将获取构建python所需的所有库。
然后下载python的源代码并将其解压缩到一个目录中。
去那里跑
./configure --prefix=/path/where/you/want/python/installed
然后make
然后make install
来构建和安装它:
make && make install
如果你在途中遇到障碍,请回到这里,我会尝试提供一些指导。
答案 1 :(得分:25)
构建" hot"的最佳方式最近的python(来自github)如下:
length(quote)<250
AND used IS NULL
OR used > now()::date - 365
-- should be
length(quote)<250
AND (used IS NULL
OR used > now()::date - 365)
它从github上的源代码构建最近的python。
有了这个,我建立了 sudo apt-get update \
&& sudo apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \
libncurses5-dev libbz2-dev liblzma-dev \
libsqlite3-dev libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
libreadline-dev tk tk-dev
git clone https://github.com/python/cpython.git
cd cpython && ./configure --prefix=/usr \
--enable-loadable-sqlite-extensions \
--enable-shared \
--with-lto \
--enable-optimizations \
--with-system-expat \
--with-system-ffi \
--enable-ipv6 --with-threads --with-pydebug --disable-rpath \
&& make \
&& sudo make install
。
答案 2 :(得分:5)
您可以尝试使用pyenv。我还没有尝试过。但是看看这些消息来源,在任何* ix系统上完成任何CPython解释器的安装似乎都非常成熟。
答案 3 :(得分:2)
自己构建Python的优秀解决方案是pythonbrew,它可以自动执行该过程,并且不仅可以安装多个不同版本,还可以轻松地在它们之间进行选择。
2016年,pyenv和PyRun是最可行的解决方案。
答案 4 :(得分:0)
您可以使用checkinstall从源代码进行安装,而不是进行make install。
下载源代码后,导航到主文件夹并使用以下命令
./configure
make
sudo checkinstall
这将创建一个debian / RPM软件包,然后进行安装。 Checkinstall保留所有文件修改和依赖项的选项卡,并使整个卸载过程更容易。由于您具有.deb软件包,因此在许多系统上安装和使用软件包管理器进行操作要容易得多。