相关疑难解决方法(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万
查看次数

Python导入优先级:包还是模块?

我不清楚如何正确地命名这个问题.

情况1

假设我有以下目录结构.

foo
|
+- bar/__init__.py
|
+- bar.py
Run Code Online (Sandbox Code Playgroud)

如果我有

from foo import bar
Run Code Online (Sandbox Code Playgroud)

我如何知道导入哪个栏(bar.pybar/__init__.py)?有没有简单的方法来自动检测这种情况?

案例2

foo
|
+- foo.py
|
+- other.py
Run Code Online (Sandbox Code Playgroud)

如果other.py有这条线

import foo
Run Code Online (Sandbox Code Playgroud)

我怎么知道导入哪个foo(foo或foo.foo)?再一次,是否有任何简单的方法来自动检测这种情况?

python import packages

13
推荐指数
3
解决办法
3465
查看次数

Flask AttributeError:模块“ app”没有属性“ run”

我的Flask项目的结构如下:

my_project
?
??? app
?   ??? __init__.py
?   ??? api
?   ??? static
?   ??? templates
??? config.py
??? run.py
Run Code Online (Sandbox Code Playgroud)

app / __ init__.py

from flask import Flask

app = Flask(__name__)

app.config.from_object('config')
Run Code Online (Sandbox Code Playgroud)

运行

from app import app

app.run(
    host=app.config.get('HOST', '0.0.0.0'),
    port=app.config.get('PORT', 5000)
)
Run Code Online (Sandbox Code Playgroud)

这以前曾奏效,但是我试图将我的项目从Python 2迁移到Python 3,并且python run.py不再运行。我收到以下错误:

Traceback (most recent call last):
  File "/Users/rasmi/Projects/my_project/run.py", line 3, in <module>
    app.run(
AttributeError: module 'app' has no attribute 'run'
Run Code Online (Sandbox Code Playgroud)

如果我更改导入样式run.py以匹配此处的样式:

from .app import app

app.run( …
Run Code Online (Sandbox Code Playgroud)

python python-import flask python-2.7 python-3.x

4
推荐指数
1
解决办法
1万
查看次数