gpt4 book ai didi

python 导入不工作

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:03 25 4
gpt4 key购买 nike

我在 python 2.7 中总共有三个文件:

  1. 某个目录下的模块文件(例如module1.py)
  2. 同一目录中的不同模块,导入该模块(例如worker.py)
  3. 顶层目录导入worker.py的主脚本

当文件worker.py如下所示

import module1 as mod

一切都按预期工作(即我可以在我的主代码中使用 worker.mod.XXX)。但是当我按如下方式替换 worker.py 的内容时(我希望这样做):

mod = __import__('module1')

我得到一个错误:ImportError: No module named module1。我需要后一种方法来处理自动从列表中导入模块的事情。

我在这里错过了什么?

更准确地说:我只是在寻找一种方法来替换语句 导入 module1 作为 mod通过表达式,其中 module1 是一个字符串。我有例如modulname='module1',并希望导入具有字符串 modulname 中给定模块名称的模块。如何做到这一点?

最佳答案

__import__(name, globals={}, locals={}, fromlist=[], level=-1) -> 模块

导入模块。因为这个函数是供 Python 使用的解释器而不是一般用途,最好使用importlib.import_module() 以编程方式导入模块。

globals 参数仅用于确定上下文;他们没有被修改。 locals 参数未使用。来自列表应该是要模拟 from name import ... 的名称列表,或者模拟 import name 的空列表。从包中导入模块时,请注意 __import__('A.B', ...)当 fromlist 为空时返回包 A,但当来自列表不为空。电平用于判断是否执行绝对或相对进口。 -1 是尝试的原始策略绝对和相对进口,0是绝对的,正数是相对于当前模块要搜索的父目录数。

关于python 导入不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759238/

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