【python跨目录调用】结合自己遇到的问题到解决问题,作个记录
写PO的时候,想把page和case 文件分开存不同的文件夹,但是在调用模块的时候就出现了问题。后来终于解决了,记录下
-------------------------------------------------------------分割线--------------------------------------------------------------------------
1.文件夹pages存放page文件、test_cases存放测试用例
2.文件结构如下:
--pages
-----login_pg.py
--test_cases
-----1_test_login.py
现在1_test_login.py中调用login_pg.py,这种情况就属于跨目录调用模块,这里要先在文件夹pages下,创建一个__init__.py,这样page就是一个完成的模块,可以被调用。
下面在文件夹test_cases,下的login_pg.py中调用login_pg.py,如下导入:
import sys,os
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#跨目录调用
sys.path.insert(0, parentdir)
from pages.login_pg import LoginPage #这里导入即可
########但是,在这样导入后,这里的问题解决了,又出了其他问题###############
问题:在pages下的login_pg.py,又调用了pages下的base_pg.py中的类,原来的写法:from base_pg import BasePage,但是现在报错,找不到base_pg这个模块。
解决后:发现要这样写,from .base_pg import BasePage(PS:加上点,形成一个相对login_pg的引用),这样就可以了
但是这样加. 以后可以还会发生其他的错误,所以这里写成这样:当正常到不进去的时候,就加点
try:
from base_pg import BasePage
except ImportError:
from .base_pg import BasePage
---------------------以上还是需要弄清楚python的引包机制才可以------------------
自己再研究下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY