【问题标题】:Import module dynamic from a folder python从文件夹python导入模块动态
【发布时间】:2013-03-25 08:18:02
【问题描述】:

我已经阅读了其他关于在 python 中动态导入模块的帖子。他们工作!问题是当我从特定文件夹导入模块时。 如果我在同一个文件夹中有主要的 python 代码和模块:

main.py

模块.py

如果我这样做:

var = "module"
module = __import__(var)

效果很好。但我的模块位于名为“modules”的特定文件夹中

main.py

模块\module.py

如果我这样做:

var = "a"
module = __import__("modules\\"+var)

它不起作用。 我知道我非常接近解决方案,但我无法得到它。

感谢您的帮助

【问题讨论】:

    标签: python import


    【解决方案1】:

    假设 modules 确实是 python 包并且 var 是你的模块名,你用点分隔目录。

    var = "module" 
    module = __import__("modules.{0}".format(var), globals(), locals(), [], -1)
    

    您可以查看文档:

    import documentation

    您在模块文件夹中创建一个 __init__.py 文件。

    【讨论】:

    • 我有这个错误:SyntaxError: Non-ASCII character '\xe1' in file C:\modules\_init_.py on line 2,但没有声明编码;详情见python.org/peps/pep-0263.html
    • 我用 import 稍微编辑了一个问题以便准确无误。关于你的错误,真的不知道你的 init.py 里面有什么。尝试删除所有内容并将其留空。
    • 我必须在模块文件夹中创建 init.py 文件,它可以工作!只需创建 init.py 为空。谢谢
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2012-02-15
    相关资源
    最近更新 更多