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。)我如何从Ubuntu的源代码构建python?
回答
在shell提示下(在终端),运行
sudo apt-get install build-essential
这将获取所有你需要建立什么共同包(例如编译器等)。
然后运行
sudo apt-get build-dep python2.7
这将获取你需要建立蟒蛇的所有库。
然后下载python的源代码并将其解压缩到一个目录中。
去那里和运行
./configure --prefix=/path/where/you/want/python/installed
然后
make
然后make install
得到它建造和安装:make && make install
如果碰到在路上碰壁,请回到这里我会尽力提供一些指导。
当我运行'sudo apt-get build-dep python2.7'时,它说“E:你必须在你的sources.list中放置一些”源代码“URI。任何想法? (另外,小方面说明:我认为你的意思是在第一个命令中写入'sudo apt-get install build-essential',而不在“essentials”的末尾加上-s。) –
在构建Python时,他们还需要--enable-shared选项,因为他们希望将它与mod_wsgi一起使用,并且Python不会默认构建共享库,这对于动态加载嵌入式系统并不理想。 –
什么是“他们”?你指的是什么?此外,在此之前,我该如何解决错误信息?我需要添加东西到sources.list? –
您自己构建Python的高级解决方案是pythonbrew,它可以自动执行此过程,并且不仅可以安装多个不同的版本,还可以轻松地在它们之间进行选择。
2016年,pyenv和PyRun是最可行的解决方案。
+1的工具。它有多成熟?你有亲身经历吗? –
@NoufalIbrahim:我使用['pythonz'](https://github.com/saghul/pythonz)('pythonbrew'的简化分支)。它的工作原理如下:它自动执行下载源代码并手动构建它们的过程。 – jfs
该工具不再维护。 –
您可以尝试使用pyenv。我还没有尝试过。但从源头上看,在任何* ix系统上安装任何CPython解释器似乎都非常成熟。
建设“热”非常最近的Python(从GitHub)的最佳方法是如下:
sudo apt-get update \
&& 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-amd64 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 \
&& make install
它建立从GitHub上的来源非常最近的蟒蛇。
有了这个我建了Python 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017)
。
- 1. 如何从源代码构建Debian/Ubuntu包?
- 2. 如何从midas源代码构建midas.obj
- 3. 如何从源代码构建Windows D3D9?
- 4. 如何从源代码构建libpthread.so?
- 5. 如何从源代码构建libpoppler?
- 6. 如何从源代码构建Mojarra
- 7. 如何从源代码构建KDE Dolphin?
- 8. 如何从源代码构建?
- 9. 如何从源代码构建vim 7.3.285
- 10. 如何从源代码构建d3.js?
- 11. 如何从源代码构建CodeCompileUnit?
- 12. 如何从源代码构建three.js
- 13. 如何使用从源代码构建的python配置mod_wsgi?
- 14. 从源代码构建Primefaces
- 15. 从源代码构建Autofac
- 16. 从android源代码构建
- 17. 从源代码构建tmux
- 18. 从源代码构建gperf
- 19. 从源代码构建dictool_aosp.jar
- 20. 从源代码构建proguard
- 21. 从源代码构建WysiHat?
- 22. 从源代码构建KVM
- 23. 如何使用_bz2,_sqlite和_ssl从源代码构建python 3.3.2
- 24. python从源代码构建:无法构建可选模块sqlite3
- 25. 如何从源代码构建VS代码后进行调试?
- 26. 如何构建C++源代码的“库”?
- 27. 如何从源代码安装Go到我的Ubuntu 12.10
- 28. 从源代码构建的原子
- 29. 如何构建一个Python模块的nfcpy源代码?
- 30. 如何构建tizen源代码?
如果你在这里没有得到答案,这个问题可能会在更多的Ubuntu的人看到askubuntu.com –
这不是真的特定于Ubuntu的,所以我认为这里很好。我认为各种堆栈交换站点有相当大的重叠。 –