2 回答

TA贡献1874条经验 获得超12个赞
我想以更概括的方式再次提出我的问题
我得到了这个文件夹结构
folder1\
__init__.py # empty file
main.py
func1.py
folder2\
__init__.py # empty file
func2.py
func2B.py
folder3\
__init__.py # empty file
func3.py
我的目标是能够同时执行 func2B.py 和 main.py(其中包含 func2B.py),而不必每次我想执行一个文件或另一个文件时都更改代码。简而言之,我试图在不更改代码的情况下从放置在不同位置的两个不同文件执行 func2B.py。
代码的显示方式,我可以执行main.py。我不知道这是否可能,也许我需要修改路径,或者我可以用正确的输入填充init .py 文件(尝试不成功)
main.py 的内容:
import folder2.func2B # uncomment to be able to execute main.py (1/2)
folder2.func2B.main() # uncomment to be able to execute main.py (2/2)
func2B.py 的内容
import folder2.folder3.func3 # uncomment to be able to execute main.py (1/2)
#import folder3.func3 # uncomment to be able to execute func2B.py (1/2)
def main():
print('executing func2B, which executes func3')
# folder2.folder3.func3.main() # uncomment to be able to execute main.py (2/2)
# folder3.func3.main() # uncomment to be able to execute func2B.py (2/2)
if __name__ == '__main__':
main()
func3.py 的内容(无关):
def main():
print('executing func3')
if __name__ == '__main__':
main()
再次感谢

TA贡献1845条经验 获得超8个赞
在您的文件func2B.py 中,您应该导入 func3
import folder3.func3
def main():
print('executing func2B, which executes func3')
func3.main()
if __name__ == '__main__':
main()
否则,您的脚本将不知道函数func3并引发错误。
编辑
尝试将 folder2 添加到 main.py 中的 sys.path
import sys
sys.path.append('folder2')
import func1
func1.main()
...
...
添加回答
举报