相关疑难解决方法(0)

从相对路径导入模块

如何根据相对路径导入Python模块?

例如,如果dirFoo包含Foo.pydirBar,和dirBar包含Bar.py,我怎么导入Bar.pyFoo.py

这是一个直观的表示:

dirFoo\
    Foo.py
    dirBar\
        Bar.py
Run Code Online (Sandbox Code Playgroud)

Foo希望包括Bar,但重组文件夹层次结构不是一种选择.

python relative-path python-import

749
推荐指数
16
解决办法
88万
查看次数

避免导入“sys.path.append(..)”

这不是我第一次imports对 Python 感到畏缩。但我想这是一个有趣的用例,所以我想在这里询问它以获得更好的见解。我的项目结构如下:

sample_project
   - src
        - __init__.py
        - module1
           - __init__.py
           -  utils.py
        - module2
           - __init__.py 
           - models.py
        - app.py
Run Code Online (Sandbox Code Playgroud)

module1从所有其他导入方法和module2app所有其他导入方法。另外,当您运行时,app它需要创建一个名为“文件夹logs外部”的文件夹src。现在有以下几种方法可以运行该应用程序:

  1. 从内部src文件夹flask run app
  2. src文件夹外部flask run src.app

为了确保我不会import errors因为启动应用程序的顶级模块的更改而出现这种情况,我这样做:

import sys
sys.path.append("..")
Run Code Online (Sandbox Code Playgroud)

对于这个问题有更好的解决办法吗?

python python-import importerror python-3.x

10
推荐指数
2
解决办法
2万
查看次数