weixin_36394146
無憂炎武大帝
采纳率50%
2018-11-08 10:13 阅读 5.4k

python如何实现跨目录引用?

5

目前文件结构如下

图片说明

需求:
需要在 apptest.py 中引用 \selenium\project1\login.py,那么 apptest.py 里的引用该怎么写?

目前尝试:

 import login.py as applogin # 引用本地的login.py
 import sys
 sys.path.append('..\\..\\..')
 from test.selenium.project1 import login.py as weblogin

在这种情况下运行 apptest.py 时,会报错 no module named 'func1',为何?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2018-11-08 10:18
     __init__.py 有没有
    
    试试看绝对路径
    
    你的问题贴乱了,是相对3层以上么?试试看
    sys.path.append('..\\..\\..\\')
    
    点赞 评论 复制链接分享
  • qq_33404767 Catalog_Spri 2018-11-09 11:00

    你sys.path.append以后有查看sys.path嘛? 可以把查看结果发一下看看吗?总觉得哪里怪怪的

    点赞 评论 复制链接分享
  • DSTJWJW Javy Wang 2018-11-10 08:09

    导入login.py 语句改为

     from test.selenium.project1.login import *
    

    试试

    点赞 评论 复制链接分享
  • sinat_39508317 爱玩游戏的月牙 2018-11-10 10:02

    1、首先:import login.py (import 后面的模块不要带.py后缀)
    2、导入模块时是有优先顺序的:
    当导入模块时,Python解释器将按以下顺序搜索模块 -
    当前目录。
    如果没有找到该模块,Python会在shell变量PYTHONPATH中搜索每个目录。
    如果其他所有失败,Python将检查默认路径。 在UNIX上,此默认路径通常是/usr/local/lib/python3/ 或者 /usr/sbin/模块搜索路径作为sys.path变量存储在系统模块sys中。sys.path变量包含当前目录PYTHONPATH和依赖于安装的默认值。
    3、真不好意思我也试出来你那个用相对路径的方法,我用绝对路径试了可以,但是由于当前路径下有一个lojin.py,会优先导入当前的,所以我把它删了,建议改个文件名。
    4、我的问题:为啥导入.py文件会执行一遍啊 0.0
    -------------------正在学习python的一个菜鸟

    点赞 评论 复制链接分享

相关推荐