【Linux】Ubuntu Linux 系统——Python集成开发环境
ℹ️大家好,我是练小杰,今天周四了,明天就周五了,再坚持坚持又能休息了!!😆
本文是有关Linux 操作系统中
Python集成开发环境基础知识,后续将添加更多相关知识噢,谢谢各位的支持~~🙏前情回顾:【Linux 系统 ——PHP开发环境】
Linux专栏:🔝 【Linux零基础开始】【Shell 脚本编程】 【文件权限专栏】

Python集成开发环境
- Python简介
- 主要特点
- 局限性
- 调试与测试
- 安装Python
- 使用包管理器安装
- 通过源代码安装较新的Python版本
- 使用 Python
- 运行 Python 脚本
- 使用交互式解释器
- Python版本切换
- 项目示例
- 虚拟环境简介
- 创建和管理虚拟环境
- pip工具管理 Python 包
- pip工具的管理命令
- 使pip安装源使用国内镜像
- 安装Python集成开发环境
- 常用的Python编程IDE工具
- Ubuntu系统中安装PyCharm
- 卸载 PyCharm
- PyCharm图形界面管理
- PyCharm初始化设置
- 创建Python项目
- 编写Python脚本
- 运行Python脚本
- 调试Python脚本
- 管理第三方类库

Python简介
Python是一种面向对象的语言,使用简洁的语法表达,使编写程序和运行程序变得简单易懂。在 Linux 系统中,Python 是许多开发任务的首选语言,尤其是在自动化脚本、Web 开发、数据分析和人工智能等领域。
主要特点
- 易于移植,支持 Linux、Windows、macOS 等操作系统。
- 拥有丰富的库,庞大的标准库和第三方库(如
NumPy、Pandas、Django)。 - Python易于扩展,是一种高级程序设计语言。
- Python适应面广,尤其适合开发运维(DevOps)、数据科学(大数据)、人工智能、网站开发和安全等领域的软件开发。
局限性
- 性能问题
Python是一种解释型语言,相比于编译型语言(如C/C++),在执行速度上可能较慢。尽管有像Cython和PyPy这样的工具可以提高性能,但在某些对性能要求极高的应用中,Python可能不是最佳选择。
- 依赖管理和环境隔离问题
- 依赖复杂性:Python项目通常依赖于大量的第三方库,管理和维护这些依赖关系可能会变得复杂。虽然有工具如
pip、virtualenv、conda等可以帮助管理依赖和环境,但仍然可能遇到版本冲突和兼容性问题。- 在Linux系统中,不同项目可能需要不同版本的Python或不同的库版本,环境隔离工具虽然可以缓解这一问题,但设置和管理这些环境仍然需要一定的学习和配置时间。
- 权限限制问题
Python在系统级编程(如修改系统内核、编写驱动程序等)方面能力有限。虽然可以通过调用C扩展或使用ctypes/cffi等库进行一些底层操作,但这增加了复杂性,并且不如C/C++等语言直接。
- 移动平台支持不足
Python在移动应用开发方面的支持相对较弱。虽然有像Kivy这样的框架可以用于跨平台移动应用开发,但与原生移动开发工具(如Android的
Java/Kotlin,iOS的Swift/Objective-C)相比,功能和性能上存在差距。
- 调试工具的局限性
虽然Python有丰富的调试工具,但在某些复杂的调试场景下,可能不如C/C++等语言的调试工具强大。
调试与测试
程序调试,一般使用
pdb或IDE的调试工具;并且,在测试中使用unittest或pytest进行单元测试。
安装Python
在大多数 Linux 发行版中,Python 3 已预装。可用以下命令检查 Python 版本。
python3 --version
使用包管理器安装
- Ubuntu/Debian系统
sudo apt update
sudo apt install python3
- Fedora 系统
sudo dnf install python3
- Arch Linux系统
sudo pacman -S python
通过源代码安装较新的Python版本
- 下载源码:
安装之前检查确认安装有C编译器
gcc, 再从Python官网下载源码。
wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz
- 将源代码包解压缩:
tar -xvf Python-3.x.x.tgz
- 切换到解压缩后的Python版本目录,加上选项
--with-ssl执行configure脚本检查安装环境并生成Makefile文件。
cd Python-3.x.x
./configure --with -ssl
- 执行
make命令编译源代码并执行make install安装编译好的软件包。
make
sudo make install
使用 Python
运行 Python 脚本
- 创建 Python 脚本(用
nano或者vim都可以)
vim hello.py
- 添加以下内容:
print("Hello, LXJ!")
- 运行脚本:
python3 hello.py
使用交互式解释器
- 启动 Python 交互式解释器:
python3
- 在解释器中直接执行代码:
>>> print("Hello, LXJ!")
Hello, LXJ!
Python版本切换
- 为每个版本安装注册候选项
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3
- 执行以下命令选择要使用的默认Python版本
$ sudo update-alternatives --config python
有 3 个候选项可用于替换 python (提供 /usr/bin/python)。选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/local/bin/python3.7 3 自动模式1 /usr/bin/python2.7 1 手动模式2 /usr/bin/python3.6 2 手动模式3 /usr/local/bin/python3.7 3 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
项目示例
接下来用一个简单的
Flask Web应用示例说明。
- 安装 Flask
pip install Flask
- 创建应用:
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():return "Hello, World!"if __name__ == '__main__':app.run(debug=True)
- 运行应用:
python3 app.py
- 在浏览器中访问
http://localhost:5000
虚拟环境简介
虚拟环境就是一个独立的目录树,包含有一个特定版本的Python和一些附加的包。 不同的应用程序可以使用不同的虚拟环境,能解决不同应用程序之间的版本冲突。
创建和管理虚拟环境
新版本Python则使用模块
venv创建和管理虚拟环境。
若在系统中有多个版本的Python,则可以通过运行python3命令来选择一个指定的Python版本。
- 创建一个虚拟环境,需要确定一个要存放的目录,接着以脚本方式运行
venv模块,后跟目录路径参数,例如:
python3 -m venv myenv
- 创建好虚拟环境之后必须激活它。在Linux平台上执行以下命令进行激活:
source myenv/bin/activate
- 需要退出虚拟环境,可执行以下命令。
deactivate
pip工具管理 Python 包
- 我们一般使用
pip工具来安装、升级和删除包。pip里有许多子命令,如search(搜索指定的包)、install(安装指定的包)、uninstall(卸载指定的包)、list(列出当前已安装的包)、show(显示一个指定包的信息)等。
pip工具的管理命令
#安装包
pip install package_name#卸载包
pip uninstall package_name#查看已安装的包
pip list
- 其中,
requirements.txt文本文档用于记录已安装的库及其版本信息。 - 到另一个虚拟环境中可通过
pip install -r将该文档记录的已安装库迁移过来使用。
pip install -r requirements.txt
使pip安装源使用国内镜像
- 创建
pip.conf配置文件
~ $ mkdir ~/.pip
~$ cd ~/.pip
~/.pip$ touch pip.conf
- 执行以下命令打开编辑器编辑
pip.conf配置文件
~$sudo geditnano ~/.pip/pip.conf
- 输入以下内容,保存该文件并退出。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
安装Python集成开发环境
常用的Python编程IDE工具
PyCharm:这是由JetBrains公司提供的Python专用的集成开发环境。Sublime Text:一个跨平台的编辑器,具有漂亮的用户界面和强大的功能。Eclipse with PyDev:Eclipse是非常流行的IDE,而PyDev是Eclipse开发Python的IDE,支持Python应用程序的开发。PyScripter:免费开源的Python集成开发环境。Visual Studio Code(VS Code):通过安装Python扩展就可以作为一个Python IDE。Jupyter Notebook:适合数据分析和可视化。
Ubuntu系统中安装PyCharm
PyCharm现在可以通过Snap方式安装。 这里从JetBrains官网下载二进制包进行安装,具体安装步骤如下。
- 下载二进制包文件
pycharm-*.tar.gz(*表示版本号) - 将该包解压缩到安装目录(通常是
/opt/)
sudo tar xfz pycharm-*.tar.gz -C /opt/
- 切换到安装目录下的
bin子目录。
cd /opt/pycharm-*/bin
- 运行脚本
pycharm.sh启动PyCharm
sh pycharm.sh
卸载 PyCharm
- 如果通过
.tar.gz安装,直接删除解压的目录即可
rm -rf ~/pycharm-*
- 如果通过
Snap安装,使用以下命令卸载
sudo snap remove pycharm-community # Community 版
sudo snap remove pycharm-professional # Professional 版
PyCharm图形界面管理
PyCharm初始化设置
-
选装功能性插件

-
PyCharm欢迎界面

创建Python项目
- 项目设置

- 新建的Python项目

编写Python脚本
- 新建 一个Python文件

运行Python脚本
- 程序运行配置

- Python程序运行

调试Python脚本
- 对Python程序调试

可以发现,这时运行错误,因为缺少了的对应的python库。
管理第三方类库
- 查看第三方类库

- 选装第三方库

- 管理安装源

今天的Linux系统的Python集成开发内容到这里就结束了,明天再见啦👋
ℹ️想了解更多,主页【练小杰的CSDN】
⚠️若博客里的内容有问题,欢迎指正,我会及时修改!!!
明天再见,各位伙伴们🚴🏻♀️~~
相关文章:
【Linux】Ubuntu Linux 系统——Python集成开发环境
ℹ️大家好,我是练小杰,今天周四了,明天就周五了,再坚持坚持又能休息了!!😆 本文是有关Linux 操作系统中Python集成开发环境基础知识,后续将添加更多相关知识噢,谢谢各位…...
数据库加密全解析:从传输到存储的安全实践
title: 数据库加密全解析:从传输到存储的安全实践 date: 2025/2/17 updated: 2025/2/17 author: cmdragon excerpt: 数据加密是数据库安全的最后一道物理防线。传输层SSL/TLS配置、存储加密技术及加密函数实战应用,覆盖MySQL、PostgreSQL、Oracle等主流数据库的20+生产级加密…...
【Prometheus】prometheus结合domain_exporter实现域名监控
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
计算机专业知识【软件开发中的常用图表:E - R图、HIPO、DFD、N - S、PAD详解】
在软件开发过程中,有许多种图表工具被用于不同阶段的设计和分析,帮助开发者更清晰地理解系统结构、数据流程和算法逻辑。下面将详细介绍E - R图、HIPO图、DFD图、N - S图和PAD图,包括它们的样子和用途。 一、E - R图(实体 - 联系…...
机器学习_13 决策树知识总结
决策树是一种直观且强大的机器学习算法,广泛应用于分类和回归任务。它通过树状结构的决策规则来建模数据,易于理解和解释。今天,我们就来深入探讨决策树的原理、实现和应用。 一、决策树的基本概念 1.1 决策树的工作原理 决策树是一种基于…...
Linux 命令行编辑快捷键
初学者在Linux命令窗口(终端)敲命令时,肯定觉得通过输入一串一串的字符的方式来控制计算是效率很低。 但是Linux命令解释器(Shell)是有很多快捷键的,熟练掌握可以极大的提高操作效率。 下面列出最常用的快捷…...
智能马达保护器:为工业电机安全运行保驾护航
在工业生产中,电动机作为核心动力设备,其稳定运行直接关系到生产效率与安全性。然而,复杂的工况环境、频繁启停和突发负载变化,常导致电机面临过载、缺相、短路等故障风险。安科瑞智能马达保护器凭借其智能化、高精度、多功能的设…...
-bash:/usr/bin/rm: Argument list too long 解决办法
问题概述 小文件日志太多导致无法使用rm命令,因为命令行参数列表的长度超过了系统允许的最大值。 需要删除/tmp目录下的所有文件,文件数量比较多。 ls -lt /tmp | wc -l 5682452 解决方法如下: 使用find -exec 遍历,然后执行删…...
深度集成DeepSeek大模型:WebSocket流式聊天实现
目录 5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南创建应用开发后端代码 (Python/Node.js)结语 5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南 创建应用 访问DeepSeek官网 前往 DeepSeek官网。如果还没有账号,需要先注册一个。…...
Python函数的函数名250217
函数名其实就是一个变量,这个变量就是代指函数而已函数也可以被哈希,所以函数名也可以当作集合中的元素,也可作为字典的key值 # 将函数作为字典中的值,可以避免写大量的if...else语句 def fun1():return 123 def fun2():return 4…...
QT基础二、信号和槽
一、什么是信号和槽? 1、简述 在Qt框架中,信号和槽(Signals and Slots) 是一种用于对象间通信的机制。它是一种非常强大且灵活的设计模式,广泛应用于事件驱动编程中。信号和槽机制允许对象之间以松耦合的方式进行交互…...
MongoDB between ... and ... 操作
个人博客地址:MongoDB between ... and ... 操作 | 一张假钞的真实世界 MongoDB中类似SQL的between and操作可以采用如下语法: db.collection.find( { field: { $gt: value1, $lt: value2 } } );...
C++虚函数:解锁多态的“动态密码
C虚函数:解锁多态的“动态密码” 开篇小故事:遥控器的“智能按钮” 假设你有一个万能遥控器,上面只有一个“开关”按钮: 按下时,电视会开机,空调会制冷,电灯会亮起。同一个按钮,却…...
【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法
1.什么是 Faster R-CNN? Faster R-CNN(Region-based Convolutional Neural Network) 是 目标检测(Object Detection) 领域的一种 双阶段(Two-Stage) 深度学习方法,由 Ross Girshick…...
Blazor-父子组件传递任意参数
在我们从父组件传参数给子组件时,可以通过子组件定义的[Parameter]特性的公开属性进行传值,但是当我们需要传递多个值的时候,就需要通过[Parameter]特性定义多个属性,有没有更简便的方式? 我们可以使用定义 IDictionar…...
【原创】vue-element-admin-plus完成编辑页面中嵌套列表功能
前言 vue-element-admin-plus对于复杂业务的支持程度确实不怎么样,我这里就遇到了编辑页面中还要嵌套列表的真实案例,比如字典,主字典嵌套子信息,类似于一个树状结构。目前vue-element-admin-plus给出的例子是无法满足这个需求的…...
【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测
1.什么是 DETR? DETR(DEtection TRansformer) 是 Facebook AI(FAIR)于 2020 年提出的 端到端目标检测算法,它基于 Transformer 架构,消除了 Faster R-CNN、YOLO 等方法中的 候选框(…...
DeepSeek教unity------MessagePack-02
内置支持类型: 对象序列化 MessagePack for C# 可以序列化你自己定义的公共类或结构体类型。默认情况下,可序列化的类型必须用 [MessagePackObject] 属性进行注解,成员需要用 [Key] 属性进行注解。键可以是索引(整数)…...
【达梦数据库】disql工具参数绑定
前言 在达梦数据库的使用过程中尽管管理工具很好用,但是命令行工具还是有着得天独厚的优势,但是在参数绑定方面就没有管理工具做的更加完美,现在就汇总下disql 工具参数绑定的常用几种方式 disql 参数绑定 使用 ? select * from v$dm_in…...
H5应用抓包及调试技巧
由于图片和格式解析问题,可前往 阅读原文 在现代移动互联网时代,H5 应用以其跨平台、轻量化、快速迭代的特性,成为移动开发的重要一环。然而,随着功能的复杂化和用户体验要求的提升,H5应用的调试也面临着诸多挑战&…...
Django后台新建管理员
在 Django 中,新建管理员用户通常涉及使用 Django 自带的命令行工具 manage.py。以下是具体步骤: 前提条件 Django 项目已创建:确保你已经创建了一个 Django 项目和应用。数据库已迁移:确保你已经运行了 python manage.py migra…...
输入网址到网页显示,发生了什么?
从今天起,我准备在网上输出自己的八股了 浏览器解析URL: 根据URL解析 请求协议(http),请求的服务器(www.baidu.com),请求的文件路径(可以省略),解…...
Coredump-N:sprintf写越界
最近遇到一个sanitizer检查出来的问题; unsigned long abc = 0xffffffffffffffff; char link[8] = {0}; sprintf(link, "%u", abc);这段代码存在潜在问题。 数据类型不匹配: abc 是一个 unsigned long 类型...
自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口)
自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口) 一、final关键字1、认识final关键字2、final修饰变量的注意3、常量 二、单例类(设计模式)1、设计模式的概念2、单例设计模式3、单例类有很多形式4、懒汉式单例类5、小…...
[LeetCode力扣hot100]-二叉树相关手撕题
简单 94.中序遍历 就说左子树-根-右子树顺序,之前也有二叉树相关的文章,基本上递归为主,这里用栈等方式实现下。 用到:栈 注意上面给出节点的基本结构,如左右,val指等 /*** Definition for a binary t…...
docker下部署kong+consul+konga 报错问题处理
前言: 由于在docker下部署一些项目比较特殊,特别是网络这一块,如果没有搞清楚,是很容易出问题的。 先上docker-compose 编排 这里的docker-compose for kong可以在 kong-compose 获取代码 version: 3.9x-kong-config:&kong…...
网络优化工作流程
DT路测 移动测试(Drive Test) CQT 定点测试(通信质量测试) DT 测试不能体现实际话务质量:回音、串音等网络问题不能通过 DT 测试发现,因此 CQT 拨打测试是 DT 测试很好的补充,也是目前室内外测…...
[题解]2024CCPC重庆站-小 C 的神秘图形
Sources:K - 小 C 的神秘图形Abstract:给定正整数 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105),三进制字符串 n 1 , n 2 ( ∣ n 1 ∣ ∣ n 2 ∣ n ) n_1,n_2(|n_1||n_2|n) n1,n2(∣n1∣∣n2∣n),按如下方法…...
React入门 - 0.React简介
React入门 - React简介 A Brief Introduction to React By JacksonML 1. 关于React React是一个知名的Web框架。众所周知,jQuery, Angular, Vue等框架都曾闪亮登场,并且,都仍然在全球市场占有一席之地。React这个颇有担当的新锐࿰…...
hive全量迁移脚本
#!/bin/bash #场景:数据在同一库下,并且hive是内部表(前缀的hdfs地址是相同的)#1.读取一个文件,获取表名#echo "时间$dt_jian_2-------------------------" >> /home/hadoop/qianyi_zengliang/rs.txt#…...
