返回顶部
首页 > 资讯 > 后端开发 > Python >Python多模块引用由此引发的相对路径混乱问题怎么解决
  • 236
分享到

Python多模块引用由此引发的相对路径混乱问题怎么解决

2023-07-05 08:07:24 236人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python多模块引用由此引发的相对路径混乱问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python多模块引用由此引发的相对路径混乱问题怎么解决”文章能帮助大家解决问

这篇文章主要介绍“python多模块引用由此引发的相对路径混乱问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python多模块引用由此引发的相对路径混乱问题怎么解决”文章能帮助大家解决问题。

    多模块引用由此引发的相对路径混乱

    当不同层级的 Python 模块相互调用时,我们会发现原本在一个模块中写死的相对路径会导致找不到文件的报错。

    这种问题该怎么解决呢?

    先说结论

    复制下面的代码, 放到你的模块内 (或者保存为一个 .py 文件), 调用 relpath 函数即可.

    def relpath(file):    """ Always locate to the correct relative path. """    from sys import _getframe    from pathlib import Path    frame = _getframe(1)    curr_file = Path(frame.f_code.co_filename)    return str(curr_file.parent.joinpath(file).resolve())

    运行效果

    Python多模块引用由此引发的相对路径混乱问题怎么解决

    特点

    • 不到 10 行代码

    • 无第三方库依赖

    • 使用简单, 只需把原先写死的相对路径, 替换为 relpath({之前写的路径}) 即可

    • 此外, PyCharm 还能够识别到文件参数, 在你键入时自动给出路径提示

    Python多模块引用由此引发的相对路径混乱问题怎么解决

    更复杂的情况演示

    someprj|- relpath.py|- A    |- a.py    |- AA        |- aa.py        |- AAA            |- aaa.py|- B    |- b.txt
    # A/a.pydef show_path():    from relpath import relpath    print(relpath('../B/b.txt'))if __name__ == '__main__':    from A.AA import aa    from A.AA.AAA import aaa    show_path()  # -> '/someprj/B/b.txt'    aa.show_path()  # -> '/someprj/B/b.txt'    aaa.show_path()  # -> '/someprj/B/b.txt'# A/AA/aa.pydef show_path():    from relpath import relpath    print(relpath('../../B/b.txt'))if __name__ == '__main__':    from A import a    from A.AA.AAA import aaa    show_path()  # -> '/someprj/B/b.txt'    a.show_path()  # -> '/someprj/B/b.txt'    aaa.show_path()  # -> '/someprj/B/b.txt'# A/AA/AAA/aaa.pydef show_path():    from relpath import relpath    print(relpath('../../../B/b.txt'))if __name__ == '__main__':    from A import a    from A.AA import aa    show_path()  # -> '/someprj/B/b.txt'    a.show_path()  # -> '/someprj/B/b.txt'    aa.show_path()  # -> '/someprj/B/b.txt'

    关于“Python多模块引用由此引发的相对路径混乱问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: Python多模块引用由此引发的相对路径混乱问题怎么解决

    本文链接: https://lsjlt.com/news/350587.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Python多模块引用由此引发的相对路径混乱问题
      目录多模块引用由此引发的相对路径混乱先说结论运行效果特点更复杂的情况演示总结多模块引用由此引发的相对路径混乱 当不同层级的 Python 模块相互调用时,我们会发现原本在一个模块中写...
      99+
      2023-03-03
      Python多模块引用 Python相对路径混乱 Python相对路径
    • Python多模块引用由此引发的相对路径混乱问题怎么解决
      这篇文章主要介绍“Python多模块引用由此引发的相对路径混乱问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python多模块引用由此引发的相对路径混乱问题怎么解决”文章能帮助大家解决问...
      99+
      2023-07-05
    • Vue打包后相对路径的引用问题怎么解决
      这篇“Vue打包后相对路径的引用问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue打包后相对路径的引用问题怎么...
      99+
      2023-06-30
    • C#相对路径绝对路径的问题怎么解决
      这篇文章主要介绍“C#相对路径绝对路径的问题怎么解决”,在日常操作中,相信很多人在C#相对路径绝对路径的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#相对路径绝对路径的问题怎么解决”的疑惑有所...
      99+
      2023-06-18
    • Log4j中相对路径的问题怎么解决
      本篇内容介绍了“Log4j中相对路径的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、properties文件中:log4j....
      99+
      2023-06-03
    • 解决vue-cli配置资源引用的绝对路径问题
      1、在vue项目中,我们经常需要引用图片等资源,每次用相对路径来说太麻烦 2、于是将要解决在vue-cli下搭建的项目配置绝对路径的位置 配置如下: 在项目中的build文件夹下的...
      99+
      2024-04-02
    • vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决
      这篇文章主要讲解了“vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决...
      99+
      2023-06-30
    • python未解析的引用问题怎么解决
      Python未解析的引用问题可能有多种原因,以下是一些常见的解决方法: 检查引用的模块是否已经安装:如果使用的是第三方模块,可以...
      99+
      2023-10-25
      python
    • 怎么解决RestTemplate使用不当引发的问题
      这篇文章主要讲解了“怎么解决RestTemplate使用不当引发的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决RestTemplate使用不当引发的问题”吧!背景系统: Spr...
      99+
      2023-06-25
    • python怎么打印当前文件的绝对路径并解决打印为空的问题
      这篇文章主要介绍“python怎么打印当前文件的绝对路径并解决打印为空的问题”,在日常操作中,相信很多人在python怎么打印当前文件的绝对路径并解决打印为空的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
      99+
      2023-07-05
    • JS怎么解决Array.fill()参数为对象指向同一个引用地址的问题
      本篇内容介绍了“JS怎么解决Array.fill()参数为对象指向同一个引用地址的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JS解决...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作