python - Python 将函数导入到另一个目录中的文件,该文件又从其自己的目录中导入另一个函数
问题描述
我需要将文件 X 的函数 x 从目录 A 导入目录 B 的文件 Y,但文件 X 还从 A 目录本身导入文件 Z 的函数 z。目录 A 在目录 C 内,目录 B 和 C 处于同一级别。我尝试将 A 添加到 sys 路径并执行“从 X 导入 x”,但它没有抛出任何模块发现错误,并且我将 C 添加到路径并从 AX 导入 x 但同样的错误。Y 能够从 X 导入 x,但是当 X执行并读取 Z 的导入会引发错误。
目录结构:
├───C
│ ├───A
│ │ ├───X
│ │ ├───Z
└───B
└───Y
解决方案
我草草写了你说的目录结构,以理解由于声誉低下而无法发布的问题。
Python 从您现在执行文件的位置解析文件导入路径
有两种三种方法可以实际导入文件 z
一种方法是在导入某些内容之前使用 os.chdir() 更改目录,以便解析路径,但不推荐这样做
另一种方法是您将 z 添加到您的 sys.path 这样您不必解析路径,但是每当您编写 import x from X 或 Z from z 时,python 解释器都会查看 A 文件夹
但请确保您在 sys.path 中添加的路径来自当前目录或者它是完整路径。
您还可以将 A 文件夹添加到 PYTHONPATH
推荐阅读
- c++ - 使用 winsock 进行 DNS 查询失败
- reactjs - 如何解决本机反应中未安装的组件警告
- c# - 使用枚举作为返回参数时出现 ServiceKnownType 错误
- c# - 如何在 MSProject C# 中以编程方式分配滞后
- spring - Spring Reactor - 使用 Pageable 端点
- php - 加载页面的其余部分,然后使用 PHP 在其主体中刷新一个循环
- java - 如何在 TextView 元素内设置整数值?
- javascript - 如何测试 jest mock 模块
- react-redux - 从语法的角度来看,connect 实际发生了什么?
- r - 从 R 导出绘图到 eps 不适用于某些字体