linux编译安装python的全过程,pip python不与linux系统环境混乱

news2024/11/26 2:31:00

因为使用要求,使得我需要在linux环境下安装一个独立的python环境,不干扰其他环境。

预安装

在安装python之前,请在linux系统下安装下面这些包:

sudo apt-get install name

libssl-dev libcurl4 libcurl4-openssl-dev
zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

这些包能装多少是多少

一,下载python资源包

两种下载方式二选一,谁快选谁

linux下载:

不同的python版本,安装过程是一样的,下载其他python版本的时候直接修改下面命令的网址链接的版本号也是可以的

wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz

windows下载:

建议先在windows下载,然后把这个包放到linux系统中,因为linux下载过程比较慢。
windows下载链接:https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz

因为我电脑和linux设备在同一wifi下,所以直接使用scp命令在主机间复制,我的复制命令格式:

scp C:\Users\LQ\Downloads\Python-3.6.9.tgz lq@192.168.1.100:/home/lq/download

二,解压python资源包,配置,编译,安装

在Linux中新建一个文件夹,用于放置编译过后的python文件
大部分通用做法是-------------- /usr/local/------------------文件夹下新建python3.6.9文件夹
我这里为了我的要求在---------/home/lq/mytools/--------文件夹下新建python3.6.9文件夹

开始解压python压缩包
解压命令:

tar -zxvf Python-3.6.9.tgz

继续

# 进入解压后的目录
cd Python-3.6.9

# 配置python路径,大概1-3分钟
./configure --prefix=/home/lq/mytools/python3.6.9

参考配置参数:
--enable-optimizations (编译一小时)
–with-ssl(遇到ssl问题使用)

# 编译,大概4-8分钟
make

# 安装,大概3-5分钟
make install

注意看最后一行,pip和setuptools 必须要成功,才能算安装成功。

到这里,python就已经安装到linux环境中了,只是还没有调用起来。
进入设置的安装位置 /home/lq/mytools/python3.6.9
查看一些关键文件:python3.6 pip3 都在的话进行下一步

可以开始配置了

二,与系统环境适配

将我们新编译的python文件与linux目录用软连接的方式连接起来

目的是

让系统命令-----python3,python--------只使用我的 /home/lq/mytools/python3.6.9/bin/python3
让系统命令-----pip3,pip------------------只使用我的 /home/lq/mytools/python3.6.9/bin/pip3

sudo ln -s /home/lq/mytools/python3.6.9/bin/python3  /usr/bin/python3
sudo ln -s /home/lq/mytools/python3.6.9/bin/python3  /usr/bin/python
ls -l /usr/bin/python3 

sudo ln -s /home/lq/mytools/python3.6.9/bin/pip3 /usr/bin/pip3
sudo ln -s /usr/bin/pip3 /usr/bin/pip

OK了!

软连接这一步容易出的一些问题:

1.如何取消软连接

办法:使用命令sudo unlink name

2.软连接被占用

办法:千万不要直接删除软连接,删除软连接会把软连接对应的文件一起删除

3.想要连接的名字已经存在

办法:比如想要链接名字 python3 但是已经存在 python3 文件了。这个时候软连接就会失败。
可以把重名的原文件备份一下,为软连接名字留出位置。

三,最后一步,修改环境变量生效

在用户根目录

vi .bashrc

在文件的末尾,写入新编译的python版本路径,添加内容如下:

export PYTHON_HOME=/home/lq/mytools/python3.6.9
export PATH=$PYTHON_HOME/bin:$PATH

wq保存退出后

运行下面命令使刚才的变量生效:

 source .bashrc

四,验证

四个命令均显示自己的设置的软连接路径,说明安装成功!

xxxxxxxxxx:~ $ pip -V
pip 21.3.1 from /home/lq/mytools/python3.6.9/lib/python3.6/site-packages/pip (python 3.6)

xxxxxxxxxx:~ $ pip3 -V
pip 21.3.1 from /home/lq/mytools/python3.6.9/lib/python3.6/site-packages/pip (python 3.6)

xxxxxxxxxx:~ $ which python
/usr/bin/python

xxxxxxxxxx:~ $ which python3
/home/lq/mytools/python3.6.9/bin/python3

这一步容易出问题的地方:

我环境配置了,也软连接了,为什么 pip -v 还是以前的python版本的路径

办法:python环境配置以后,也对pip进行配置一下,运行命令:
上面123456789步骤都做好了才用这个命令。

alias pip='/home/lq/mytools/python3.6.9/bin/pip3'

尾言

python的安装完毕了,但其实这还不算结束,对于一般用户来说只是使用一下python 的基础功能,这篇博客就够用了。就算结束了。

但要自己安装的 pip 包的用户,可能会遇到一些问题(pip不能用)。
我将在下一章博客中讲解如何解决pip包的问题。
下一章 pip常见问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zynq-7000、国产zynq-7000的GPIO控制(一)

Zynq-7000系列GPIO排布如下图所示,著名手册ug585第14章,第一个图,这图很清晰的表明,一共54个MIO,64个EMIO,所有这些IO共分为4个bank,其中 Bank0 32bit —>> MIO[0:31] Bank1 22bit —…

【移动端网页布局】流式布局案例 ② ( 实现顶部固定定位提示栏 | 布局元素百分比设置 | 列表样式设置 | 默认样式设置 )

文章目录 一、样式测量及核心要点1、样式测量2、高度设定3、列表项设置4、设置每个元素的百分比宽度5、设置图像宽度 二、核心代码编写1、HTML 标签结构2、CSS 样式3、展示效果 三、完整代码示例1、HTML 标签结构2、CSS 样式3、展示效果 一、样式测量及核心要点 1、样式测量 京…

8、接口的高级用法

1、索引类型 我们可以使用接口描述索引的类型和通过索引得到的值的类型,比如一个数组[‘a’, ‘b’],数字索引0对应的通过索引得到的值为’a’。我们可以同时给索引和值都设置类型,看下面的示例: interface RoleDic {[id: number…

现在的00后,真是卷死了呀,想离职了·····

都说00后躺平了,但是有一说一,该卷的还是卷。这不,刚开年我们公司来了个00后,工作没两年,跳槽到我们公司起薪23K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …

Spring Aop原理全面详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

《数理天地》期刊简介及投稿邮箱

《数理天地》期刊简介及投稿邮箱 《数理天地》用稿以数学、物理、学科交叉、科普等稿件为主,自创刊以来,以新观点、新方法、新材料为主题,坚持"期期精彩、篇篇可读"的理念。数理天地内容详实、观点新颖、文章可读性强、信息量大&a…

操作系统——第一章概论(上)

未闻花名,不见花开 文章目录 1.1.1 操作系统的概念,功能1.1.2 操作系统的特征1.2 操作系统的发展和分类1.3.1 操作系统的运行机制1.3.2 中断和异常 1.1.1 操作系统的概念,功能 通过下图可以发现用户和操作系统是有一部分是相连的&#xff0c…

锁屏密码忘记了?教你40秒破iphone锁屏密码!

案例:iPhone锁屏密码忘记了怎么办? 【求助,昨晚刚改的锁屏密码,今早起来想不起来了。苹果锁屏密码有什么方法可以破解吗?】 当你忘记了iPhone的锁屏密码,可能会感到困惑和无助。本文将介绍40秒破iphone锁屏…

从Redis到KeyDB:实现高可用和高可扩展性的转变

文章目录 从Redis到KeyDB:实现高可用和高可扩展性的转变特点**[线程模型]( )****[链接管理]( )****[锁机制]( )****[Active-Replica]( )** 结语 从Redis到KeyDB:实现高可用和高可扩展性的转变 今天给大家介绍的是KeyDB,KeyDB项目是从redis f…

2023年制造业产品经理NPDP认证报名找弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

IO多路复用机制

从阻塞 I/O 到 I/O 多路复用 阻塞IO: 阻塞 I/O,是指进程发起调用后,会被挂起(阻塞),直到收到数据再返回。如果调用一直不返回,进程就会一直被挂起。因此,当使用阻塞 I/O 时&#xff…

【电科复试第一名】23上交819考研经验分享

笔者来自通信考研小马哥23上交819全程班学员 819,上岸经验贴,知无不言 初试第十一,复试第一,总分第七(与第六同分) 考研经历:本科就读与湖南某末985,大学时间没好好学习,天天打王者,玩steam上…

让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt

stable-diffusion Prompt 生成 直接生成 按照惯用的扮演思路,我们可以让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt。考虑到 ChatGPT 和 DallE 同为 openai 公司产品,且 stable-diffusion 开源模型出现较晚,ChatGPT 训练…

Linux云服务器的使用,以及运行Python程序

目录 1、使用Linux云服务器的软件 2、Linux系统运行Python程序 3、Linux系统查看包、虚拟环境、安装包等 以下几个深度学习服务器都不错:智星云、AutoDL、恒源云 1、使用Linux云服务器的软件 MobaXterm_Personal 推荐MobaXterm_Personal mobaxterm是一款方便网站…

目标追踪deepsort ByteTrack

多目标跟踪算法:DeepSort https://arxiv.org/pdf/1703.07402.pdf https://github.com/ZQPei/deep_sort_pytorch DeepSORT(Deep Learning-based SORT)是一种基于深度学习的多目标跟踪算法,用于在视频序列中跟踪多个目标并进行身份…

[pgrx开发postgresql数据库扩展]4.基本计算函数的编写与性能对比

前言 再次声明: 并不是所有场景都需要(或者适合)用rust来写的,绝大部分操作数据库的功能和计算,用SQL就已经足够了! 本系列中,所有的案例,仅用于说明pgrx的能力,而并非…

Spring依赖注入(DI配置)

Spring依赖注入 1. 依赖注入方式【重点】1.1 依赖注入的两种方式1.2 setter方式注入问题导入引用类型简单类型 1.3 构造方式注入问题导入引用类型简单类型参数适配【了解】 1.4 依赖注入方式选择 2. 依赖自动装配【理解】问题导入2.1 自动装配概念2.2 自动装配类型依赖自动装配…

ThinkPHP模型操作上

ThinkPHP模型操作上 前言模型一、创建模型二、模型操作 总结 前言 在mvc架构中,模型的解释是写逻辑代码的地方,其实还可以这样理解,就是一串操作写在一个模型类中,就是你要完成某一项功能,将这个功能的代码写在一个mod…

chatgpt能做本地化部署,训练私有化学科领域数据吗?-----模型只在工具之上,想法只在算力范围之内

GPTGLM-6B场景应用: 最近,ChatGPT已经火出圈了,一般OpenAI需要梯子,然后需要花钱,导致很多限制,用的很不方便(很希望大厂努力,有国人自己的大语言模型),目前…

Bean 作⽤域和⽣命周期

目录 1.lombok 1.1 1.添加依赖:(pom.xml) 1.2 在实体类上使用lombok提供的注解 1.3 安装插件 2. Bean 的 6 种作⽤域(Scope) 2.1 singleton(默认模式) 2.2 prototype(原型模式…