この記事に出くわし、すべての手順に従いました。しかし、pyDev は私のフラスコの拡張機能を認識しません。これは本当に面倒です。1つだけあります(これが鍵だと思います):
Touch /site-packages/flaskext/__init__.py
Touch私が思うUNIXユーティリティです。Windowsでこれに相当するものはありますか?
Eclipse は、デフォルトでモジュールの静的分析を使用します。flask.extインポート リストを動的に作成します。Python シェルを使用して動的解析を強制するflask.extには、強制ビルトイン リストに追加します。
に進みPreferences -> PyDev -> Interpreters -> Python Interpreterます。通訳者を選択し、Forced Builtinsタブに移動します。をクリックしNew...て入力しflask.extます。
これには、PyDev がシェルを介して強制的にモジュールを分析する必要があります。
詳細については、PyDev マニュアルを参照してください。
プロジェクトが仮想環境にあり、そのプロジェクトを Eclipse に追加して、プロジェクトが仮想環境にインストールされているライブラリを使用するようにする場合は、次の手順に従う必要があります。
ステップ 1: 仮想環境への絶対パスを次のようにします。
C:\Users\sadegh\Desktop\flask_eclipse\fe\venv
ディレクトリに移動するwindow->preferences->PyDev->interpretors->Python Interpretor
と、
この仮想環境に割り当てられている python インタープリターがあります。この実行可能ファイルは、Eclipse に追加する新しい Python インタープリターになります。Scriptspython.exe

step2: に行くwindow->preferences->PyDev->Interpreters->Python Interpreter

新しいボタンをクリックすると、次のウィンドウがポップアップします。

フィールドに必要なものをInterpreter Name記述し、ステップ 1 で言及した python.exe ファイルの絶対パスをフィールドに記述しInterpreter Executableます。
これをクリックするOK と、次のポップアップが表示されます。

すべての項目を選択してクリックOK
ステップ3:上のペインで新しく追加されたインタープリターを選択し、下のペインでForced Builtinタブに移動して、この下のペインの右側にある新しいボタンをクリックします。
そして、ポップアップするウィンドウで書き込みflask.extます。
step4: すべてが設定されました:
新しいプロジェクトを開始する場合: 新しいプロジェクトを作成するときは、作成したPyDev Project新しいインタープリターをこのプロジェクトのインタープリターとして選択します。

仮想環境で既存のプロジェクトをフラスコ プロジェクトに変換する場合は、プロジェクトを右クリックしてプロパティに移動しPyDev-Interpreter/Grammar、インタープリターを作成した新しいインタープリターに変更します。
注:仮想環境でEclipseにサーバーを実行させたい場合は、次のようにFlask()インスタンスを含むコード内からサーバーを実行できます。
if __name__ == '__main__': #here i assume you have put this code in a file that
app.run() #contains variable "app", which contains the instance of #Flask(__main__)
私もこれに苦労しています.Flaskが拡張機能をインポートする方法に問題があるようです. ファイルを開くと、flask/ext/__init__.pyインポーターが使用されていることがわかります。私は PyDev がこれほど好きではないと思うので、このファイルを修正済みのインポートで編集しました:
import flask_login as login
import flask_sqlalchemy as sqlalchemy
import flask_wtf as wtf
def setup():
from ..exthook import ExtensionImporter
importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__)
importer.install()
setup()
del setup
また、Flask-SQLAlchemy インポートも壊れていることがわかったのでdb.Column、ドキュメントで説明されているようにする代わりに、直接 sqlalchemy インポートを使用します。from sqlalchemy import Column, ForeignKey
touch存在しない場合は空のファイルを作成し、存在する場合はファイルの変更時刻を更新します。
この目的にecho > /site-packages/flashext/__init__.pyは、コマンドラインで十分です。(ファイルは空白にはなりませんが、意味的には Python と同等の改行が 1 つだけ含まれています)。