繁体   English   中英

Python 如何跟踪要导入的库(目录)?

[英]How does Python keep track of libraries (directories) to import?

我的计算机上有两个略有不同的 Python 3 代码分支。 我经常在它们之间来回切换。 两者都包含稍微修改过的文件和目录,它们的命名方式相同。 每个目录中的代码从一个子目录中导入代码,例如“from ldm.util import instantiate_from_config”,其中“ldm”是我当前所在目录的一个子目录,“util.py”是“ldm.py”中的一个文件。 “

当我从其他分支导入和使用“util.py”和“ldm”目录时,Python 一直感到困惑。 这两个分支都不在 Windows PATH 或 PYTHONPATH 上。 我可以通过临时重命名我不想使用的目录来欺骗 Python,但我想了解:Python 是如何记住这个其他目录存在的,以便 go 导入它? 我如何告诉 Python,如果一个文件夹是我当前所在文件夹的子目录,那就是我希望它导入的版本?

我想我找到了答案:

  1. “Python 会做的第一件事是在 sys.modules 中查找名称 abc。这是以前导入的所有模块的缓存。”
  2. “相对导入的语法取决于当前位置以及要导入的模块的位置,package 或 object。” 所以它需要一个“。” 事先告诉它使用当前位置的东西。 示例:来自https://realpython.com/absolute-vs-relative-python-imports/的“from.subpackage1.module5 import function2”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM