gpt4 book ai didi

Python - 导入给定完整​​路径的模块目录

转载 作者:行者123 更新时间:2023-12-01 03:49:55 24 4
gpt4 key购买 nike

我这里有一个 python 模块/root/python/foo.py。我在文件夹 /root/lib/ 中有一堆其他模块,如下所示


lib/
|
├─ module1/
| ├─ __init__.py
   | └─ bar.py
|
└─ module2/
├─ __init__.py
└─ bar.py

我想从 foo.py 导入 /root/lib/module1/root/lib/module2。我想不必/root/lib/添加到python系统路径。 This stack overflow answer告诉您如何使用 imp.load_sourceimportlib.machinery.SourceFileLoaderimportlib.util 类从文件加载模块(取决于Python版本)。我认为这些只有在模块是单个文件时才有效。如果我在 Python 3.4 中尝试这样的事情

from importlib.machinery import SourceFileLoader
problem_module = SourceFileLoader('test_mod', '/root/lib/module1').load_module()

我收到一个 IsADirectoryError

我的问题是,如果模块是目录,是否有类似的方法来加载模块(给定其完整路径),而不将整个 lib/ 文件夹添加到系统路径?

最佳答案

尝试:

from importlib.machinery import SourceFileLoader
problem_module = SourceFileLoader('test_mod', '/root/lib/module1/__init__.py').load_module()

__init__.py 应该关心同一包中的模块:

从 中添加。 import bar 使 bar.py 成为包的一部分。

一些更正:

  • module1 是一个包而不是模块。
  • bar.py 是包 module1
  • 的模块部分

关于Python - 导入给定完整​​路径的模块目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38424673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com