源码安装Python学会有用还能装逼解决各种坑建议收藏
Posted 雷学委
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码安装Python学会有用还能装逼解决各种坑建议收藏相关的知识,希望对你有一定的参考价值。
相信朋友们都看过这个零基础学习Python的开篇了
文章为了让新朋友快速写Python代码,直接推荐了绿色内置版安装。很多时候比如在正式服务器环境,我们是使用rpm或者指定版本源码编译打包基础服务器镜像的。
从简到难,先从安装包来安装python,后面在Linux安装并使用。
开发者电脑安装
Window电脑,这个比较简单,我们进入Python官网,找到Installer下载安装。
如下图,一般都是64位的选择圈中的64-bit下载。
这个是exe文件,所以就一步一步直接安装即可。
或者直接这个链接下载:https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe
本机安装,我们的目标是使用Python开发,一步一步直接设置默认的就最好!(也就是环境变量也不用去定制了)
MacOS如何安装Python
下载pkg文件,一步一步安装,同上,基本不用自己配置环境变量!
https://www.python.org/ftp/python/3.9.6/python-3.9.6-macos11.pkg
最难的来了。
源码安装Python?
这种安装就比较多步骤了,tar包编译安装,然后配置环境。
这种过程多,能够学到很多。
源码安装python可能遇到的多个问题
-
python版本过新,导致安装过程缺少一些c代码的方法或者.h文件缺失
-
安装过程缺少一些python开发相关的库,比如想zlib或者ffi库等
ZipImportError: cannot’ decompress data; zilib not available
比如下面的代码致命错误ffi.h(当然下面的错误是因为libffi这库没有预装了)
准确点说,主要是下面两个问题:
- 代码要求高版本的gcc,当前系统的过于陈旧!
- python开发依赖缺失了,当前系统没有安装!
但是问题不大,迎难而上,还好不是迎男而上。
升级gcc,需要root
切换为root用户安装
yum install -y centos-release-scl
yum install -y devtoolset-7-gcc*
scl enable devtoolset-7 bash
gcc -v
#学委的代码分享
安装缺失的开发依赖库
切换为root用户安装
#这里距离
yum install -y libffi-devel.x86_64
yum -y install zlib*
升级完gcc和依赖后可以安装了
直接报存下面的代码为install.sh,然后运行安装吧。
#从这里下载安装
curl -k https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz -o leixuewei-python.tar.xz
#解压 tarball
#xz -dk leixuewei-python.tar.xz
tar xf leixuewei-python.tar.xz
#配置安装
cd Python-3.9.6
./configure --prefix=/opt/python3.9.6
make
sudo make install
安装后使用
打开任意终端/CMD输入:python
安装顺利,能够查到版本号码。
补充设置
上面源码编译后二进制文件为python3,我们希望在任意目录输入python都能调用python3。
可以切换到root用户,通过下面的命令设置:
cd /usr/bin
unlink python
ln -s /opt/python3.9.6/bin/python3 python
ln -s /opt/python3.9.6/bin/pip3 pip
执行后,我们打开一个终端输入python就用上python3了。
再回来说环境变量
重点变量 | 作用 | Linux示例设置 |
---|---|---|
PYTHONPATH | Python模块的搜索路径 | export PYTHONPATH=/leixuewei/packages |
PYTHONPATH是Python中一个重要的环境变量,用于在导入模块的时候搜索路径。
PYTHONHOME为PYTHON的安装路径,默认设置为python的安装路径。
题外话
不过我们在服务器端,主要是以Linux服务器安装Python为主。
同时在大公司,服务器成百上千不在话下,语言和软件都是有统筹管理的。就算是自动化安装也是把这个手动过程编写为自动化脚本或者配置比如Ansible。
或者用Docker镜像,但这些方式本质也是走服务器安装的方式,只是被打包到镜像了。
以上是关于源码安装Python学会有用还能装逼解决各种坑建议收藏的主要内容,如果未能解决你的问题,请参考以下文章
Python踩坑之路-Python-3.6 安装pycrypto 2.6.1各种疑难杂症及解决方案