import python files from another dierctory
我尝试了太多的解决方案,但都没能成功。
这是目录结构。
1 2 3 4 5 6 7 8 9 | |project |------->folder1 |-------------->file1.py #file1.py contains class File1 |-------------->file2.py #file2.py contains class File2 |------->folder2 |-------------->another_file1.py #another_file1.py contains class SomeClass1 |-------------->another_file2.py #another_file2.py contains class SomeClass2 |------->Runner |-------------->logic.py |
我需要创建
_初始文件夹1
1 2 | from . import file1 from . import file2 |
_初始文件夹2
1 2 | from . import another_file1 from . import another_file2 |
_初始项目
1 2 | from . import folder1 from . import folder2 |
我不能从
No module named file1.
No module named file2.
SystemError: Parent module '' not loaded, cannot perform relative import
不过,我可以通过这种调整来工作。
1 2 | import sys sys.path.append('../') |
在我在
P.S.使用python 3.5
任何遇到同样问题的人都可以这样做。
1)创建新项目,例如:流式应用程序。
1 2 3 4 5 6 7 8 9 | |root --StreamingApplication |-------> utils |-------------->helper.py |-------------->storage_handler.py |------->config |-------------->config.py |-------------->hook.py |------->app |-------------->application.py |
因此,如果要将文件夹标记为python包,还可以创建
向
在
1 | export PYTHONPATH=/path/to/StreamingApplication |
带
那么在江户记1〔5〕中,你可以这样做。
1 2 3 4 5 6 7 | from utils.helper import write_file #write_file is function. from utils.storage_handler import StorageHandler # StorageHandler is class import config as conf class App: def __init__(self): self.executors = conf.executors # access executors variable from config |
准备就绪。