这是我的项目结构:
- Elvvo
- 功能
- lights.py
- main.py
- 功能
Elvvo文件夹的目录是/home/pi/Desktop/Elvvo
,因为我在树莓派上工作。
我有几个在main.py
中定义的函数。我想从lights.py
中调用这些函数。我该怎么做呢?提前感谢!
technical -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()
这也应该给你想要的输出。