Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python导入不工作_Python_Import - Fatal编程技术网

python导入不工作

python导入不工作,python,import,Python,Import,我在python 2.7中总共有三个文件: 某个目录中的模块文件(例如module1.py) 同一目录中导入此模块的不同模块(例如worker.py) 顶级目录中的主脚本导入worker.py 当文件worker.py如下所示时 import module1 as mod 一切正常(即我可以在主代码中使用worker.mod.XXX)。但是当我将worker.py的内容替换为以下内容时(我希望这样做): 我得到一个错误:导入错误:没有名为module1的模块。我需要后一种方法来处理从列表自动导

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

  • 某个目录中的模块文件(例如
    module1.py
  • 同一目录中导入此模块的不同模块(例如
    worker.py
  • 顶级目录中的主脚本导入
    worker.py
  • 当文件
    worker.py
    如下所示时

    import module1 as mod
    
    一切正常(即我可以在主代码中使用
    worker.mod.XXX
    )。但是当我将
    worker.py
    的内容替换为以下内容时(我希望这样做):

    我得到一个错误:
    导入错误:没有名为module1的模块。我需要后一种方法来处理从列表自动导入模块的事情

    我错过了什么

    更准确地说:我只是在寻找一种方法来取代这一说法 将模块1作为mod导入 通过
    module1
    为字符串的表达式。例如,
    modulename='module1'
    ,我想用字符串
    modulename
    中给出的模块名称导入模块。如何做到这一点?

    \uuuuuuuuuuuuuuuuuuuuuu导入(名称,全局={},局部={},fromlist=[],level=-1)->module

    导入模块。因为这个函数是供Python使用的 解释器,非通用,最好使用
    importlib.import\u module()
    以编程方式导入模块

    globals
    参数仅用于确定上下文; 它们没有被修改。本地参数未使用。fromlist 应该是要从名称导入中模拟的名称列表…
    ,或 要模拟的空列表
    导入名称
    。 从软件包导入模块时,请注意
    \uuuuu import\uuuu('a.B',…)
    当fromlist为空时返回包A,但当fromlist为空时返回其子模块B fromlist不为空。级别用于确定是否执行 绝对进口或相对进口-1是最初的尝试策略 无论是绝对导入还是相对导入,0都是绝对值,为正数 要相对于当前模块搜索的父目录数。

    \uuuuuu import\uuuuuu(名称,全局={},局部={},fromlist=[],level=-1)->module

    导入模块。因为这个函数是供Python使用的 解释器,非通用,最好使用
    importlib.import\u module()
    以编程方式导入模块

    globals
    参数仅用于确定上下文; 它们没有被修改。本地参数未使用。fromlist 应该是要从名称导入中模拟的名称列表…,或 要模拟的空列表
    导入名称
    。 从软件包导入模块时,请注意
    \uuuuu import\uuuu('a.B',…)
    当fromlist为空时返回包A,但当fromlist为空时返回其子模块B fromlist不为空。级别用于确定是否执行 绝对进口或相对进口-1是最初的尝试策略 无论是绝对导入还是相对导入,0都是绝对值,为正数 相对于当前模块要搜索的父目录数。

    请尝试以下操作:

    mod = __import__('module1', globals=globals())
    
    试试这个:

    mod = __import__('module1', globals=globals())
    


    我认为应该还有另一个因素,因为
    \uuuu import\uuuu()
    是由
    import
    语句直接调用的。你指的是什么因素?例如,这个错误只有在你更改这一行代码时才会出现(当然,其他一切,包括程序启动方式都是一样的)?是的。我只是尝试以不同的方式导入同一个模块,其他一切都是一样的。我相信应该还有另一个因素,因为
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(其他一切都是一样的,包括如何启动程序)?是的。我只是尝试以不同的方式导入相同的模块,其他一切都是一样的。我尝试使用
    importlib
    ,但是
    importlib.import\u模块('module1'))
    给出了相同的错误。好吧,如何将要导入的模块放置在导入的位置?首先,我不理解您的评论。其次,我只是想用一个表达式替换
    import module1作为mod
    ,其中
    module1
    用作字符串。例如,
    modulename='module1'
    ,现在我想用字符串
    modulename
    中定义的名称导入模块。怎么做?伙计,这很有帮助,如果你不懂基本知识,没有人能帮你。@Alex本文包含所有URL和一些信息来解决你的问题。只需理解你的问题-问题是一个懒惰的学生,他甚至不是一个学生我可以在这里匆忙地阅读关于语言的简单书籍,以显示它们的愚蠢。我尝试使用
    importlib
    ,但是
    importlib.import\u模块('module1'))
    给出了相同的错误。好吧,如何将要导入的模块放置在导入的位置?首先,我不理解您的评论。其次,我只是想用一个表达式替换
    import module1作为mod
    ,其中
    module1
    用作字符串。例如,
    modulename='module1'
    ,现在我想用字符串
    modulename
    中定义的名称导入模块。怎么做?伙计,这很有帮助,如果你不懂基本知识,没有人能帮你。@Alex本文包含所有URL和一些信息来解决你的问题。只需理解你的问题-问题是一个懒惰的学生,他甚至不是一个学生我能很快地阅读关于语言的简单书籍,在这里展示他们的愚蠢。非常感谢!!这用一个具体的例子解决了我的问题。非常感谢!!这用一个具体的例子解决了我的问题。