当前位置: 首页 > article >正文

【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 等操作系统。
  • 拥有丰富的库,庞大的标准库和第三方库(如 NumPyPandasDjango)。
  • 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++等语言的调试工具强大。

调试与测试

程序调试,一般使用 pdbIDE 的调试工具;并且,在测试中使用 unittestpytest 进行单元测试。

安装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 应用示例说明。

  1. 安装 Flask
pip install Flask
  1. 创建应用:
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():return "Hello, World!"if __name__ == '__main__':app.run(debug=True)
  1. 运行应用:
python3 app.py
  1. 在浏览器中访问 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官网下载二进制包进行安装,具体安装步骤如下。

  1. 下载二进制包文件pycharm-*.tar.gz* 表示版本号)
  2. 将该包解压缩到安装目录(通常是/opt/
sudo tar xfz pycharm-*.tar.gz -C /opt/
  1. 切换到安装目录下的bin子目录。
cd /opt/pycharm-*/bin
  1. 运行脚本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集成开发环境

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天周四了&#xff0c;明天就周五了&#xff0c;再坚持坚持又能休息了&#xff01;&#xff01;&#x1f606; 本文是有关Linux 操作系统中Python集成开发环境基础知识&#xff0c;后续将添加更多相关知识噢&#xff0c;谢谢各位…...

数据库加密全解析:从传输到存储的安全实践

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详解】

在软件开发过程中&#xff0c;有许多种图表工具被用于不同阶段的设计和分析&#xff0c;帮助开发者更清晰地理解系统结构、数据流程和算法逻辑。下面将详细介绍E - R图、HIPO图、DFD图、N - S图和PAD图&#xff0c;包括它们的样子和用途。 一、E - R图&#xff08;实体 - 联系…...

机器学习_13 决策树知识总结

决策树是一种直观且强大的机器学习算法&#xff0c;广泛应用于分类和回归任务。它通过树状结构的决策规则来建模数据&#xff0c;易于理解和解释。今天&#xff0c;我们就来深入探讨决策树的原理、实现和应用。 一、决策树的基本概念 1.1 决策树的工作原理 决策树是一种基于…...

Linux 命令行编辑快捷键

初学者在Linux命令窗口&#xff08;终端&#xff09;敲命令时&#xff0c;肯定觉得通过输入一串一串的字符的方式来控制计算是效率很低。 但是Linux命令解释器&#xff08;Shell&#xff09;是有很多快捷键的&#xff0c;熟练掌握可以极大的提高操作效率。 下面列出最常用的快捷…...

智能马达保护器:为工业电机安全运行保驾护航

在工业生产中&#xff0c;电动机作为核心动力设备&#xff0c;其稳定运行直接关系到生产效率与安全性。然而&#xff0c;复杂的工况环境、频繁启停和突发负载变化&#xff0c;常导致电机面临过载、缺相、短路等故障风险。安科瑞智能马达保护器凭借其智能化、高精度、多功能的设…...

-bash:/usr/bin/rm: Argument list too long 解决办法

问题概述 小文件日志太多导致无法使用rm命令&#xff0c;因为命令行参数列表的长度超过了系统允许的最大值。 需要删除/tmp目录下的所有文件&#xff0c;文件数量比较多。 ls -lt /tmp | wc -l 5682452 解决方法如下&#xff1a; 使用find -exec 遍历&#xff0c;然后执行删…...

深度集成DeepSeek大模型:WebSocket流式聊天实现

目录 5分钟快速接入DeepSeek大模型&#xff1a;WebSocket实时聊天指南创建应用开发后端代码 (Python/Node.js)结语 5分钟快速接入DeepSeek大模型&#xff1a;WebSocket实时聊天指南 创建应用 访问DeepSeek官网 前往 DeepSeek官网。如果还没有账号&#xff0c;需要先注册一个。…...

Python函数的函数名250217

函数名其实就是一个变量&#xff0c;这个变量就是代指函数而已函数也可以被哈希&#xff0c;所以函数名也可以当作集合中的元素&#xff0c;也可作为字典的key值 # 将函数作为字典中的值&#xff0c;可以避免写大量的if...else语句 def fun1():return 123 def fun2():return 4…...

QT基础二、信号和槽

一、什么是信号和槽&#xff1f; 1、简述 在Qt框架中&#xff0c;信号和槽&#xff08;Signals and Slots&#xff09; 是一种用于对象间通信的机制。它是一种非常强大且灵活的设计模式&#xff0c;广泛应用于事件驱动编程中。信号和槽机制允许对象之间以松耦合的方式进行交互…...

MongoDB between ... and ... 操作

个人博客地址&#xff1a;​​​​​​​MongoDB between ... and ... 操作 | 一张假钞的真实世界 MongoDB中类似SQL的between and操作可以采用如下语法&#xff1a; db.collection.find( { field: { $gt: value1, $lt: value2 } } );...

C++虚函数:解锁多态的“动态密码

C虚函数&#xff1a;解锁多态的“动态密码” 开篇小故事&#xff1a;遥控器的“智能按钮” 假设你有一个万能遥控器&#xff0c;上面只有一个“开关”按钮&#xff1a; 按下时&#xff0c;电视会开机&#xff0c;空调会制冷&#xff0c;电灯会亮起。同一个按钮&#xff0c;却…...

【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法

1.什么是 Faster R-CNN&#xff1f; Faster R-CNN&#xff08;Region-based Convolutional Neural Network&#xff09; 是 目标检测&#xff08;Object Detection&#xff09; 领域的一种 双阶段&#xff08;Two-Stage&#xff09; 深度学习方法&#xff0c;由 Ross Girshick…...

Blazor-父子组件传递任意参数

在我们从父组件传参数给子组件时&#xff0c;可以通过子组件定义的[Parameter]特性的公开属性进行传值&#xff0c;但是当我们需要传递多个值的时候&#xff0c;就需要通过[Parameter]特性定义多个属性&#xff0c;有没有更简便的方式&#xff1f; 我们可以使用定义 IDictionar…...

【原创】vue-element-admin-plus完成编辑页面中嵌套列表功能

前言 vue-element-admin-plus对于复杂业务的支持程度确实不怎么样&#xff0c;我这里就遇到了编辑页面中还要嵌套列表的真实案例&#xff0c;比如字典&#xff0c;主字典嵌套子信息&#xff0c;类似于一个树状结构。目前vue-element-admin-plus给出的例子是无法满足这个需求的…...

【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测

1.什么是 DETR&#xff1f; DETR&#xff08;DEtection TRansformer&#xff09; 是 Facebook AI&#xff08;FAIR&#xff09;于 2020 年提出的 端到端目标检测算法&#xff0c;它基于 Transformer 架构&#xff0c;消除了 Faster R-CNN、YOLO 等方法中的 候选框&#xff08;…...

DeepSeek教unity------MessagePack-02

内置支持类型&#xff1a; 对象序列化 MessagePack for C# 可以序列化你自己定义的公共类或结构体类型。默认情况下&#xff0c;可序列化的类型必须用 [MessagePackObject] 属性进行注解&#xff0c;成员需要用 [Key] 属性进行注解。键可以是索引&#xff08;整数&#xff09;…...

【达梦数据库】disql工具参数绑定

前言 在达梦数据库的使用过程中尽管管理工具很好用&#xff0c;但是命令行工具还是有着得天独厚的优势&#xff0c;但是在参数绑定方面就没有管理工具做的更加完美&#xff0c;现在就汇总下disql 工具参数绑定的常用几种方式 disql 参数绑定 使用 ? select * from v$dm_in…...

H5应用抓包及调试技巧

由于图片和格式解析问题&#xff0c;可前往 阅读原文 在现代移动互联网时代&#xff0c;H5 应用以其跨平台、轻量化、快速迭代的特性&#xff0c;成为移动开发的重要一环。然而&#xff0c;随着功能的复杂化和用户体验要求的提升&#xff0c;H5应用的调试也面临着诸多挑战&…...

Django后台新建管理员

在 Django 中&#xff0c;新建管理员用户通常涉及使用 Django 自带的命令行工具 manage.py。以下是具体步骤&#xff1a; 前提条件 Django 项目已创建&#xff1a;确保你已经创建了一个 Django 项目和应用。数据库已迁移&#xff1a;确保你已经运行了 python manage.py migra…...

输入网址到网页显示,发生了什么?

从今天起&#xff0c;我准备在网上输出自己的八股了 浏览器解析URL&#xff1a; 根据URL解析 请求协议&#xff08;http&#xff09;&#xff0c;请求的服务器&#xff08;www.baidu.com&#xff09;&#xff0c;请求的文件路径&#xff08;可以省略&#xff09;&#xff0c;解…...

Coredump-N:sprintf写越界

最近遇到一个sanitizer检查出来的问题; unsigned long abc = 0xffffffffffffffff; char link[8] = {0}; sprintf(link, "%u", abc);这段代码存在潜在问题。 数据类型不匹配: abc 是一个 unsigned long 类型...

自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口)

自学Java-面向对象高级&#xff08;final、单例类、枚举类、抽象类、接口&#xff09; 一、final关键字1、认识final关键字2、final修饰变量的注意3、常量 二、单例类&#xff08;设计模式&#xff09;1、设计模式的概念2、单例设计模式3、单例类有很多形式4、懒汉式单例类5、小…...

[LeetCode力扣hot100]-二叉树相关手撕题

简单 94.中序遍历 就说左子树-根-右子树顺序&#xff0c;之前也有二叉树相关的文章&#xff0c;基本上递归为主&#xff0c;这里用栈等方式实现下。 用到&#xff1a;栈 注意上面给出节点的基本结构&#xff0c;如左右&#xff0c;val指等 /*** Definition for a binary t…...

docker下部署kong+consul+konga 报错问题处理

前言&#xff1a; 由于在docker下部署一些项目比较特殊&#xff0c;特别是网络这一块&#xff0c;如果没有搞清楚&#xff0c;是很容易出问题的。 先上docker-compose 编排 这里的docker-compose for kong可以在 kong-compose 获取代码 version: 3.9x-kong-config:&kong…...

网络优化工作流程

DT路测 移动测试&#xff08;Drive Test&#xff09; CQT 定点测试&#xff08;通信质量测试&#xff09; DT 测试不能体现实际话务质量&#xff1a;回音、串音等网络问题不能通过 DT 测试发现&#xff0c;因此 CQT 拨打测试是 DT 测试很好的补充&#xff0c;也是目前室内外测…...

[题解]2024CCPC重庆站-小 C 的神秘图形

Sources&#xff1a;K - 小 C 的神秘图形Abstract&#xff1a;给定正整数 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)&#xff0c;三进制字符串 n 1 , n 2 ( ∣ n 1 ∣ ∣ n 2 ∣ n ) n_1,n_2(|n_1||n_2|n) n1​,n2​(∣n1​∣∣n2​∣n)&#xff0c;按如下方法…...

React入门 - 0.React简介

React入门 - React简介 A Brief Introduction to React By JacksonML 1. 关于React React是一个知名的Web框架。众所周知&#xff0c;jQuery, Angular, Vue等框架都曾闪亮登场&#xff0c;并且&#xff0c;都仍然在全球市场占有一席之地。React这个颇有担当的新锐&#xff0…...

hive全量迁移脚本

#!/bin/bash #场景&#xff1a;数据在同一库下&#xff0c;并且hive是内部表&#xff08;前缀的hdfs地址是相同的&#xff09;#1.读取一个文件&#xff0c;获取表名#echo "时间$dt_jian_2-------------------------" >> /home/hadoop/qianyi_zengliang/rs.txt#…...