2011-09-07 6 views
5

私はPythonで開発を開始してから数カ月ですが、C#とJavaのバックグラウンドを持っています。Python appengineプロジェクトで外部ライブラリを参照する場合、Pydev/Eclipseを使用します。

私は現在、2つの異なるpython/appengineアプリケーションで作業しています。これらのケースでは、両方のアプリケーションが共通のコードを共有しているため、共通/汎用コードをリファクタリングして共通の場所に移動したいと思います。

JavaまたはC#のいずれかで、新しいライブラリプロジェクトを作成し、コードを新しいプロジェクトに移動し、メインプロジェクトからライブラリへの参照を追加します。

私はPythonで同じことを試みましたが、動作させることができません。

私はPydevプラグインでEclipseを使用しています。私は新しいPyDevはプロジェクトを作成しました

は、コードを移動し、しようとしました:(プロジェクトのプロパティ使用して - >プロジェクト参照)、メインプロジェクトから

  • 参照ライブラリプロジェクトを
  • ライブラリを追加しますsrcフォルダフォルダをメインプロジェクトに追加します(この場合、エラーが発生します。既存のソースフォルダを追加するときにプロジェクトの境界を残すことはできません)。
  • Googleライブラリが定義されているのとほとんど同じです、プロパティ - >外部ライブラリを使用)
  • リンクとしてインポート(読み込みから - >ファイルシステムと「ワークスペース内のリンクを作成する」を有効にする)すべての場合において

私は開発中のライブラリのコードを参照することができていますが、私はデバッグを開始、AppEngineの開発サーバーは、別のライブラリプロジェクトに移動したものが見つからないため、例外をスローします。

私は解決策のために多くのことを検索しましたが、誰もが同じ問題を経験していないように見えるもちろん

- または多分誰もが同じことを行う必要がありません:)

私がきた最も近いソリューション見つけられたのは、ライブラリソースを圧縮してターゲットプロジェクトにコピーするantスクリプトを追加することです。しかし、この方法では、ライブラリコードにステップインできないため、デバッグが苦労します。

提案がありますか?

言うまでもなく、ライブラリコードは、AppEngineのためのアップロードプロセスに含まれなければなら考慮しなければならない提案された解決策...

おかげ

答えて

4

dev_appserverと本番環境にはありませんプロジェクトやライブラリのコンセプトがあるので、必要なすべてのライブラリがアプリケーションのルートになるようにアプリを構造化する必要があります。これを行う最も簡単な方法は、通常、それらをサブディレクトリまたは最悪の場合はコピーする(またはバージョンコントロールを使用してサブリポジトリにする)ようにシンボリックリンクすることです。

あなたのIDEでの操作のマップはIDEに依存しますが、一般的には、ディスク上に必要なときにアプリケーションを構造化し、それを逆戻りしてIDEをセットアップするのが最も簡単ですそれ。

+0

ありがとうNick - コードをsrcフォルダに移動してから別のsvnリポジトリに追加することでアドバイスしてくれます。今すぐ他のプロジェクトにインポートするだけでOKです。 – Antonio

関連する問題