首页 > 解决方案 > 从多个子文件夹导入文件 python

问题描述

如何从文件 file1.py 导入文件 file2.py?有没有一种标准的方法,而不必使用诸如 sys 之类的库?

project\
  folder1\
    folder2\
      file1.py
  folder3\
    folder4\
      file2.py

标签: pythonimportsubdirectory

解决方案


你最好使用绝对导入,这样你就可以确保你project在你的内部sys.path,然后你可以直接导入project.folder1.folder2.file1而不必相对于file2,

如果您正在处理不在您的 python 路径中的包,那么我建议您创建一个虚拟环境和一个 setup.py 文件(查找 setuptools 以获取更多信息)并且如果您已激活您的虚拟环境然后运行python setup.py install(或python setup.py develop如果您仍在处理它,请从源目录中使用它)然后它将您的, - 请注意,如果您愿意sys.path,可以使用等效的命令pip install .

否则,如果您不想以“正确”的方式进行操作,则只需sys.path手动摆弄,是的,您必须import sys先这样做,或者PYTHONPATH在启动 python 之前设置环境变量(冒号分隔的列表目录,您将需要包含project)的父目录


推荐阅读