【问题标题】:How to Import a File from a different folder in Python如何在 Python 中从不同的文件夹导入文件
【发布时间】:2021-11-12 19:59:19
【问题描述】:

这是我的项目结构:

  • Elvvo
    • 功能
      • lights.py
    • main.py

Elvvo 文件夹的目录是 /home/pi/Desktop/Elvvo,因为我正在使用 Raspberry Pi。

我在main.py 中定义了几个函数。我想从lights.py 调用这些函数。我该怎么做呢?提前致谢!

【问题讨论】:

    标签: python directory raspberry-pi python-import directory-structure


    【解决方案1】:

    技术 1

    您可以使用 sys.path.insert() 内置方法将 main.py 的路径插入到系统路径变量的位置 1。这样可以确保以最高优先级加载它并避免任何命名冲突(如果存在)。

    请看下面我是如何解决这个问题的:

    我的文件夹结构如下图:

    import_test
    ├── functions
    │   └── function.py
    ├── main.py
    

    我的 main.py

    def printFromMainA():
        print("FromMainA")
    
    
    def printFromMainB():
        print("FromMainB")
    

    我的函数/function.py

    import sys
    sys.path.insert(1, "Absolute path to import_test/")
    
    from main import *
    
    def printFunction():
        print("FromFunction")
        printFromMainA()
        printFromMainB()
    
    
    printFunction()
    

    最后当我从import_test 文件夹运行时

    python functions/function.py 
    

    我得到以下输出:

    FromFunctionA
    FromMainA
    FromMainB
    

    技术 2

    您也可以使用sys.path.append() 方法将 main.py 的路径附加到系统的路径变量。这会将当前路径添加到系统路径列表的最后一个位置。

    在这种情况下,你需要对 function.py 做的就是:

    import sys
    
    sys.path.append("Absolute path to import_test/")
    
    from main import *
    
    def printFunction():
        print("FromFunction")
        printFromMainA()
        printFromMainB()
    
    
    printFunction()
    

    这也应该给你想要的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多