python的导入(import)模块路径选择-相对路径和绝对路径

学习总结,有错误欢迎指出。

总结:同一包下的模块建议使用 相对路径,非同一包下建议使用 绝对路径

1.  相对路径

建议在 同一包下 的模块之间导入时使用 相对路径 。如下目录:

demo
   - module1.py
   - module2.py

下面示例中,module1和module2的导入,使用的相对路径。

备注:无论使用哪种执行方式(直接运行、模块运行、单独运行、带路径运行)都不会带来模块无法找到的错误。

2. 绝对路径

建议在 非同一包下 的模块之间导入时使用 绝对路径

绝对路径:导入(import)模块的 起始包的路径 搜索路径列表(sys.path) 中。通常可以将项目的根目录 作为 起始路径 ,也就是将项目的根目录(demo)的路径添加到 搜索路径(sys.path) 中。

demo
  - pkg01
    - module1
  - pkg02
    - module2
  - run.py

下图示例中,使用了绝对路径(前提是项目的根目录demo的路径在 搜索路径(sys.path) 中)。

如何将一个路径添加到 搜索路径(sys.path) 中 (以demo为例):

  • PYTHONPATH环境变量:通过将demo的路径设置为环境变量PYTHONPATH的值。
  • sys.path列表添加:执行起始位置,给sys.path列表中添加demo的路径。
  • 解释器自动添加(2种方式):

        - 添加执行命令所在目录到搜索路径:脚本方式执行可将执行命令所在目录添加到搜索路径。示例:进入demo目录,执行python -m xxx(即将demo作为执行命令的目录,并添加到搜索路径中)。

        - 添加模块(包)所在目录到搜索路径模块方式执行,可将被执行的模块(包)所在目录添加到搜索路径。示例:执行python /tmp/demo/run.py(即将run.py所在目录添加到搜索路径,也就是demo路径会被添加到搜素路径)。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值