12

この記事に出くわし、すべての手順に従いました。しかし、pyDev は私のフラスコの拡張機能を認識しません。これは本当に面倒です。1つだけあります(これが鍵だと思います):

Touch /site-packages/flaskext/__init__.py

Touch私が思うUNIXユーティリティです。Windowsでこれに相当するものはありますか?

4

4 に答える 4

26

Eclipse は、デフォルトでモジュールの静的分析を使用します。flask.extインポート リストを動的に作成します。Python シェルを使用して動的解析を強制するflask.extには、強制ビルトイン リストに追加します。

に進みPreferences -> PyDev -> Interpreters -> Python Interpreterます。通訳者を選択し、Forced Builtinsタブに移動します。をクリックしNew...て入力しflask.extます。

これには、PyDev がシェルを介して強制的にモジュールを分析する必要があります。

詳細については、PyDev マニュアルを参照してください。

于 2014-02-14T15:39:20.957 に答える
2

プロジェクトが仮想環境にあり、そのプロジェクトを Eclipse に追加して、プロジェクトが仮想環境にインストールされているライブラリを使用するようにする場合は、次の手順に従う必要があります。

ステップ 1: 仮想環境への絶対パスを次のようにします。 C:\Users\sadegh\Desktop\flask_eclipse\fe\venv

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__)
于 2017-02-11T19:41:31.103 に答える
2

私もこれに苦労しています.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

于 2013-05-16T10:42:59.383 に答える
0

touch存在しない場合は空のファイルを作成し、存在する場合はファイルの変更時刻を更新します。

この目的にecho > /site-packages/flashext/__init__.pyは、コマンドラインで十分です。(ファイルは空白にはなりませんが、意味的には Python と同等の改行が 1 つだけ含まれています)。

于 2013-02-21T08:10:08.310 に答える