在Linux系统中,Python作为一门强大的脚本语言和开发工具,广泛应用于系统管理、自动化任务、Web开发等领域,掌握Linux环境下Python的使用方法,能显著提升开发效率和系统操作灵活性,以下从安装配置、环境管理、开发工具、常用操作及项目部署等方面详细介绍。
Python安装与版本管理
Linux系统通常预装Python,但版本可能较旧(如Python 2.7),建议手动安装或升级到Python 3.x,不同发行版安装方式略有差异:
- Ubuntu/Debian:通过
apt
安装,sudo apt update && sudo apt install python3 python3-pip
,其中pip3
是Python包管理工具。 - CentOS/RHEL:使用
yum
或dnf
,sudo yum install python3 python3-pip
(CentOS 7+)或sudo dnf install python3 python3-pip
(CentOS 8+)。
若需管理多版本Python(如同时使用Python 3.8和3.11),可借助pyenv
工具:
- 安装依赖:
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
- 安装pyenv:
curl https://pyenv.run | bash
,并配置环境变量(将~/.pyenv/bin
加入PATH
)。 - 安装指定版本Python:
pyenv install 3.11.0
,通过pyenv global 3.11.0
设置全局版本。
虚拟环境管理
虚拟环境可隔离项目依赖,避免包冲突,Python内置venv
模块(Python 3.3+),也可使用virtualenv
(功能更丰富)。
- venv使用:创建环境
python3 -m venv myenv
,激活环境source myenv/bin/activate
,退出时执行deactivate
。 - virtualenv使用:安装
pip install virtualenv
,创建环境virtualenv myenv
,激活方式相同。
以下是虚拟环境常用命令对比:
| 操作 | venv命令 | virtualenv命令 |
|————–|————————|————————|
| 创建环境 | python3 -m venv env
| virtualenv env
|
| 激活环境 | source env/bin/activate
| source env/bin/activate
|
| 安装包 | pip install package
| pip install package
|
| 退出环境 | deactivate
| deactivate
|
开发工具与调试
- 命令行交互:使用
python3
进入交互式解释器,或ipython
(需安装pip install ipython
)提供更强大的自动补全和语法高亮。 - IDE/编辑器:
- VS Code:安装Python插件,支持代码补全、调试、Jupyter集成,通过
Ctrl+Shift+P
打开命令面板,选择“Python: Select Interpreter”切换环境。 - PyCharm:专业版提供Web开发、数据库工具,社区版适合Python开发,创建项目时选择“Existing Interpreter”并指定虚拟环境路径。
- VS Code:安装Python插件,支持代码补全、调试、Jupyter集成,通过
- 调试:在代码中插入
import pdb; pdb.set_trace()
进入调试模式,或使用IDE的图形化调试工具(如VS Code的“Run and Debug”视图)。
常用系统操作
Python可通过标准库与Linux系统交互:
- 文件与目录操作:使用
os
模块(如os.listdir()
列目录、os.path.exists()
检查路径)和shutil
模块(如shutil.copy()
复制文件)。 - 执行Shell命令:
subprocess
模块推荐使用run()
函数,例如subprocess.run(["ls", "-l"], capture_output=True)
捕获命令输出。 - 权限与用户管理:
pwd
模块获取当前用户信息(pwd.getpwuid(os.getuid()).pw_name
),grp
模块获取用户组信息。
项目部署与打包
-
依赖管理:使用
requirements.txt
记录依赖,通过pip freeze > requirements.txt
生成,pip install -r requirements.txt
安装。 -
打包为可执行文件:安装
pyinstaller
(pip install pyinstaller
),执行pyinstaller -F script.py
生成单文件可执行程序,-w
参数隐藏控制台窗口。 -
后台服务化:使用
systemd
管理服务,创建服务文件/etc/systemd/system/myservice.service
示例:[Unit] Description=My Python Service After=network.target [Service] User=your_user WorkingDirectory=/path/to/project ExecStart=/usr/bin/python3 /path/to/project/script.py Restart=always [Install] WantedBy=multi-user.target
启用服务:
sudo systemctl enable --now myservice
。
相关问答FAQs
Q1:Linux下Python模块导入失败,提示“ModuleNotFoundError”,如何解决?
A:首先检查是否在虚拟环境中激活(deactivate
退出后重新激活);若已激活,用pip list
确认模块是否安装;若未安装,执行pip install module_name
,若模块安装在系统环境而非虚拟环境,可通过pip install --user module_name
安装到用户目录,或检查PYTHONPATH
环境变量是否包含模块路径。
Q2:如何在Linux后台持续运行Python脚本,且即使关闭终端也不中断?
A:有三种常用方式:
- nohup:
nohup python3 script.py > output.log 2>&1 &
,&
表示后台运行,output.log
记录输出,关闭终端后进程仍存在。 - screen:安装
screen
,执行screen -S mysession
创建会话,运行脚本后按Ctrl+A+D
detach,通过screen -r mysession
重新attach。 - systemd服务:如上文“项目部署”部分配置服务文件,实现开机自启、自动重启,适合长期运行的服务。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28470.html