如何简化Python Selenium项目绝对导入,无需添加sys.path?
解决Python Selenium自动化中绝对导入无需手动添加sys.path的问题
问题根源
你遇到的ModuleNotFoundError是因为Python的sys.path里没有包含项目根目录/home/test/Documents/Internal_Dev/internal_automation。Python默认会把脚本所在目录和标准库路径加入sys.path,但你的create_task.py在project_1/Project_Tab/Project/Tasks/下,直接运行时无法识别上层的project_1模块。
无需手动添加sys.path的解决方案
1. 配置PYTHONPATH环境变量
把项目根目录加入系统的PYTHONPATH,让Python每次启动都自动识别这个路径:
- Linux/macOS临时生效:在终端运行
export PYTHONPATH="/home/test/Documents/Internal_Dev/internal_automation:$PYTHONPATH" - Linux/macOS永久生效:把上面的命令加到
~/.bashrc或~/.zshrc(根据你使用的shell),然后重启终端或执行source ~/.bashrc生效。 - Windows:打开「系统属性」→「高级」→「环境变量」,新建系统变量
PYTHONPATH,值设为对应路径C:\...\Internal_Dev\internal_automation,重启命令行工具后生效。
2. 切换到项目根目录运行脚本
不要直接在create_task.py所在目录执行脚本,先切换到项目根目录:
cd /home/test/Documents/Internal_Dev/internal_automation
再用相对路径运行脚本:
python project_1/Project_Tab/Project/Tasks/create_task.py
此时Python会把当前工作目录(项目根目录)加入sys.path,你写的绝对导入语句就能正常工作。
3. 将项目转为可安装的包(推荐长期项目)
在项目根目录(internal_automation)下创建setup.py文件,内容如下:
from setuptools import setup, find_packages setup( name="internal_automation", version="0.1.0", packages=find_packages(), )
然后在根目录运行命令,把包安装为可编辑模式:
pip install -e .
安装完成后,无论你在系统哪个位置运行脚本,都能直接使用from project_1.Login import login这类绝对导入语句,完全不需要手动处理sys.path。
内容的提问来源于stack exchange,提问作者FrancoisBez
相关产品推荐
相关产品推荐

