2013-02-21 3 views
10

私はthis articleにつまずいてすべてのステップに従った。しかしpyDevは私のフラスコのエクステンションを見ることはできません。それは本当に面倒です。ウィンドウ上でフラスコの拡張を見るためにeclipse/pydevをうれしくするにはどうすればいいですか?

Touch /site-packages/flaskext/__init__.py

Touchは、私が思うUnixのutilのである:一つだけの事は(と私は、これがキーだと思います)があります。 Windowsと同等の機能はありますか?

答えて

25

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

Preferences -> PyDev -> Interpreters -> Python Interpreterにアクセスしてください。インタプリタを選択し、Forced Builtinsタブに移動します。 New...をクリックし、flask.extと入力します。

これは、シェルを介して強制的にモジュールを解析するためにPyDevが必要です。

詳細はPyDev manualを参照してください。

+0

これは非常に有望です。その間、私はPyCharmに切り替えたので、私自身はこれをテストすることはできません。しかし、あなたが公式文書を参照しているので、私はこの問題を解決したものとしてマークします。 – floqqi

+3

これは私がインストールしたflask.extモジュールの未解決のインポートを修正します。 FlaskモジュールをPython PATHに追加しても、未解決のインポートは修正されませんでした。 –

+0

これは有望そうだが、Mac OS X 10.11のLiClipse 3.6.0ではうまくいきませんでした。おそらくLiClipseにバンドルされているPyDevのバグ? –

0

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

この目的のためには、コマンドラインでecho > /site-packages/flashext/__init__.pyで十分です。 (ファイルは空白ではなく、Pythonと意味的に等価な単一の改行のみを含みます)。

+0

はありがとうございますが、私のPythonインタプリタを復活させた後も問題は残っています。 – floqqi

1

私はまたこれに苦労しています。問題は、Flaskが拡張機能をインポートする方法にあるようです。 flask/ext/__init__.pyファイルを開くと、インポーターを使用していることがわかります。で説明したように、私はまた、フラスコSQLAlchemyの輸入があまりにも破ったことがわかったので、代わりにdb.Columnを行うのでてきた

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 

:私は、PyDevは、このくらいが好きとは思わないので、私は、固定された輸入品を使用してこのファイルを編集しましたマニュアル、直接使用sqlalchemyインポート、すなわちfrom sqlalchemy import Column, ForeignKey

0

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

ステップ1: のは、仮想環境への絶対パスがあるとしましょう: C:\Users\sadegh\Desktop\flask_eclipse\fe\venv

The content of venv folder

はPythonインタプリタであるpython.exe enter image description here があり、Scriptsディレクトリにwindow->preferences->PyDev->interpretors->Python Interpretor に行きますこの仮想環境に割り当てられています。この実行可能ファイルは、Eclipseに追加する新しいPythonインタプリタです。

STEP2: ゴー右ペインでwindow->preferences->PyDev->Interpreters->Python Interpreter enter image description here

にあなたは、この表示されます。その後、このウィンドウがポップアップ表示され、新しいボタンを enter image description here

クリック: enter image description here

は何かを書きますInterpreter Nameフィールドに入力し、手順1で説明したpython.exeファイルの絶対パスをに書き込みますこれがポップアップ表示されますOKをクリックした後フィールド

enter image description here

すべての項目を選択しOK

STEP3をクリックしてください:上記のペインで新しく追加されたインタプリタを選択して、以下のペインにに行きますForced Builtinタブをクリックし、この下のウィンドウの右側にある新しいボタンをクリックします。

enter image description here

と書き込みflask.extをポップアップウィンドウに表示されます。

STEP4:すべてが設定されました:あなたは私たちがこのプロジェクトの通訳として作成された新しいインタプリタを選択し、新しいPyDev Projectを作成しているとき :

新しいプロジェクトを開始したい場合は

enter image description here

あなたの仮想環境上のフラスコプロジェクトに既存のプロジェクトを変換したい場合はプロジェクトを右クリックし、プロパティに移動し、私たちが作成した新しいインタプリタへPyDev-Interpreter/Grammar変更通訳インチ

ノート:あなたは日食が仮想環境であなたのためにサーバーを実行したい場合は、このようなフラスコ()インスタンスを含むコード内からサーバーを実行できます。

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__) 
+0

これは、問題のインタープリタがプロジェクト固有のインタープリタであっても、すべてのプロジェクトに対してインタープリタをグローバルに追加します。インタプリタを追加する方法はありますか?プロジェクト固有のものだけですか? – FluxIX

関連する問題