Python 脚本终端运行方法
Python脚本终端运行方式详解
Python脚本在终端中的运行是开发中的核心技能,涵盖基础执行、参数传递、环境管理到高级优化。以下系统化解析全流程,重点聚焦实用技巧与避坑指南。
一、基础执行方式
-
直接调用解释器
python script.py # Python 2/3通用python3 script.py # 强制使用Python 3
原理:终端通过环境变量
$PATH
定位解释器,解释器逐行编译执行字节码。
注意:- Windows需配置环境变量(路径示例:
C:\\Python39\\
) - Linux/Mac默认集成,可通过
which python3
验证路径
- Windows需配置环境变量(路径示例:
-
脚本权限+直接运行(Linux/Mac)
chmod +x script.py # 添加可执行权限./script.py # 直接执行
关键:首行需添加Shebang声明解释器路径:
#!/usr/bin/env python3 # 推荐:自动查找环境中的python3
二、参数传递与处理
-
命令行参数解析
python data_processor.py --input=data.csv --output=report.pdf
代码实现(argparse模块):
import argparseparser = argparse.ArgumentParser()parser.add_argument(\"--input\", type=str, required=True)parser.add_argument(\"--output\", type=str, default=\"result.txt\")args = parser.parse_args() # 参数存入args对象print(f\"Processing {args.input} -> {args.output}\")
-
环境变量注入
export API_KEY=123abc && python api_client.py # Linux/Macset API_KEY=123abc && python api_client.py # Windows
代码获取变量:
import osapi_key = os.environ.get(\"API_KEY\") # 安全读取
三、虚拟环境管理(隔离依赖)
-
创建与激活
python -m venv myenv # 创建虚拟环境source myenv/bin/activate # Linux/Mac激活myenv\\Scripts\\activate # Windows激活
-
依赖安装与冻结
pip install requests pandas # 安装包pip freeze > requirements.txt # 导出依赖清单pip install -r requirements.txt # 根据清单重建环境
四、调试与错误处理
-
基础调试命令
python -m pdb script.py # 启动调试器
常用调试命令:
b 10
:在第10行设置断点c
:继续执行n
:执行下一行p variable
:打印变量值
-
日志分级输出
import logginglogging.basicConfig(level=logging.DEBUG) # 设置日志级别logging.warning(\"Low memory!\") # 输出警告
五、性能监控与优化
-
执行时间测量
time python heavy_task.py # Linux/Mac
代码级测量:
import timestart = time.perf_counter()# ...执行代码...print(f\"耗时: {time.perf_counter() - start:.2f}s\")
-
内存分析工具
python -m memory_profiler script.py # 需先pip install memory_profiler
输出示例:
Line # Mem usage Increment Occurrences Line Contents10 45.2 MiB 45.2 MiB 1 data = [np.zeros(1000) for _ in range(10000)]
六、打包为可执行文件
-
PyInstaller跨平台打包
pip install pyinstallerpyinstaller --onefile --windowed app.py # 生成单文件无终端窗口应用
生成文件位置:
dist/
目录下的.exe
(Windows)或无后缀(Mac/Linux)文件 -
依赖问题处理
- 隐藏导入:
--hidden-import=module_name
- 添加数据文件:
--add-data=\"icon.png:.\"
- 隐藏导入:
七、跨平台兼容技巧
-
路径处理统一方案
from pathlib import Pathdata_file = Path(\"data\") / \"records.csv\" # 自动适配系统路径分隔符
-
系统命令安全调用
import subprocesssubprocess.run([\"ls\", \"-l\"], check=True) # 避免直接拼接字符串
八、典型问题解决方案
python: command not found
source venv/bin/activate
export PYTHONIOENCODING=utf-8