zoukankan      html  css  js  c++  java
  • 【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的引包机制才可以------------------

    自己再研究下

  • 相关阅读:
    [01] 异常的概念和处理
    [03] 节点流和处理流
    [02] 输入/输出流 和 字节/字符流
    [01] File类
    Apache的https协议配置
    Apache的虚拟主机配置
    Apahce的虚拟用户认证及server-status页
    Apache配置日志功能
    Apache脚本路径别名(CGI接口)
    Apache配置站点根目录、用户目录及页面访问属性
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/8890878.html
Copyright © 2011-2022 走看看