1

这是我的项目结构:

  • 埃尔沃
    • 功能
      • 灯光.py
    • 主文件

Elvvo 文件夹的目录与/home/pi/Desktop/Elvvo我在 Raspberry Pi 上工作时一样。

我在main.py. 我想从lights.py. 我该怎么做呢?提前致谢!

4

1 回答 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()

这也应该为您提供所需的输出。

于 2021-09-18T06:35:46.083 回答