python - 防止 PyDev 移动特定的导入

标签 python pydev flask

在使用 eclipse+PyDev 和 Flask 框架进行编程时,我注意到来自 IDE 的自动组织导入功能(使用 Ctrl+O 调用)有时会妨碍。

这与 Flask 处理将 View 代码拆分为多个模块或包的需要的方式有关。基本上,如果您有一个包含请求处理程序的 views.py 模块:

from myapp import app

@app.route('/')
def root():
    return "Hello world"

并且您的 Flask 应用在 __init__.py 中定义:

from flask import Flask

app = Flask('MyApp')
app.config.from_pyfile('config.py')

@app.before_request
def before_request(): pass # omitted for brevity

@app.teardown_request
def teardown_request(): pass # omitted for brevity

您需要在后一个文件的导入 View 末尾,以便将 View 函数添加到 Flask 的路由表中。由于 views.py 导入 __init__.py 以访问 app 变量,这导致循环导入。不过,它工作正常,实际上是一种既定的做法,如 suggested by documentation .

不幸的是,PyDev 对这种技术一无所知。如果我们不小心触发了 __init__.py 的组织导入(这并不少见,因为这个选项通常很有用),PyDev 会很乐意将关键的 import views 移到顶部。当然,这会导致不正确(无法解析)的循环导入,以及烦人的运行时错误。

有没有一种方法可以防止这种情况发生 - 比如 #@Directive 会告诉 PyDev 单独留下这个特定的导入,一种关闭基于每个文件的导入组织的方法,或者类似的东西?

最佳答案

我不使用 PyDev,但您是否尝试过摆脱它的导入解析器?这很脏,但您可以尝试类似的方法:

if 1: import views

由于该行不是以“import”开头,也许 PyDev 会忽略它?

关于python - 防止 PyDev 移动特定的导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8930670/

相关文章:

python - 预取相关的django

python - Eclipse中Python的OpenCV 2.3的配置

python - PyDev 中单元测试的初始化?

javascript - index.html 在重新定位到子文件夹 'templates' 后不访问 app.js 或 data.js

Python + Flask 应用程序在 Pycharm 在 127.0.0.1 上运行后从错误的文件夹运行

python - 将时间字符串(小时 :Min:Sec. 毫秒)快速转换为 float

Python:字符串连接在for循环中的工作方式不同

php - Cron 是运行计划任务的唯一方法吗?

python - 在 Eclipse(Pydev) 中将命令行参数传递给 Python 脚本

python - 亚马逊云上的 Docker