私は OpenERP 6.1 を使用していますが、Python コードで print ステートメントを指定して Python コードをデバッグできません。
これは、OpenERP 6.0 では非常に簡単/可能でした。サーバー パスに続いてモジュール名とデータベース名を指定して、コードをデバッグします。
OpenERP 6.1でこれを達成するにはどうすればよいですか??
助けてください!!前もって感謝します..
こんにちは、ipython をインストールできます。ipython を使用すると、コマンド プロンプトで openerp 6.1 をデバッグできます。これらのパッケージが事前にインストールされていることを確認してください。
sudo apt-get install python-dateutil python-feedparser python-gdata python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi
このリストは http://www.theopensourcerer.com/2012/02/22/how-to-install-openerp-6-1-on-ubuntu-10-04-lts/から取得しました
pycharm を試すこともできます。
Openerp+python コードを Eclipse でデバッグするには、デバッグ パースペクティブで Eclipse を開始し、次の手順に従います。
1: 「ctr+c」を押して、openERP を実行しているサーバーを停止します。
2: Eclipse で、[実行/デバッグ構成] メニューに移動します。「Python Run」の下の構成ウィンドウで、新しいデバッグ構成を作成します(「Python Run」をダブルクリックします)。
3: 新しいデバッグ構成を作成したら、次の手順に従います。
3.1: 「プロジェクト」の下の「メイン」タブで、ワークスペースから「サーバー」プロジェクトまたはフォルダー (Openerp サーバーが存在する) を選択します。
3.2: 「メインモジュール」の下に「openerp-server」の場所を書き込みます。
例: ${workspace_loc:server/openerp-server}。
3.3: 「プログラム引数」の下の「引数」タブで、「変数」ボタンをクリックすると、新しいウィンドウが表示されます。
3.4: 次に、「変数の編集」ボタンをクリックして新しい「変数」を作成すると、新しいウィンドウが表示されます。
3.5: 「新規」ボタンを押して、アドオンのパスを値として指定します。
例: --addons ../addons,../your_module_path
3.6: 開いているすべてのウィンドウで [OK] を押してから、[適用] を押します。
4: "PyDev Package Explorer" ビューで 6.1/server に移動し、"openerp-server" ファイルを右クリックして、[Debug As --> Python Run] を選択します。
5: 「コンソール」で、サーバーが起動したことを確認できます。
6: デバッグしたい .py ファイルを開き、ブレークポイントを設定します。
7: モジュールのフォームを 'gtk' または 'web-client' から開始すると、実行がブレークポイントに達すると実行が停止します。
8: "F5、F6、F7" を押してコードをデバッグすると、変数の値が表示されます。
以下があることを確認してください。
logfile = None
これにより、標準出力からログが得られます。
それは役に立ちますか?
EclipseとPyDevで 6.1 サーバーを問題なく実行しています。これにより、ブレークポイントを追加して、コードをステップ実行できます。私が使用する引数は次のとおりです。
--addons-path ${workspace_loc:openerp-addons-trunk},${workspace_loc:openerp-web-trunk}/addons --config ${workspace_loc:openerp-config/src/server.config}
私が最も便利だと思う 2 つのブレークポイントは、RPC 呼び出しの両端にあります。サーバー側では、次の行にブレークポイントを配置しましたnetsvc.dispatch_rpc()
。
result = ExportService.getService(service_name).dispatch(method, params)
クライアントを頻繁にデバッグすることはありません。また、すべてのリクエストが同じパスを通過するわけではありませんが、便利なブレークポイントの 1 つはrpc.tinySocket_gw.execute()
.
もちろん、これらのブレークポイントはどちらも大量のトラフィックを参照するため、慣れていない機能を調べている場合にのみ使用し、コードがどこで実行されるかはわかりません。ブレークポイントに条件を設定して、特定のモデルまたはパラメーター値に対してリクエストが届いたときにのみトリガーされるようにすることも役立ちます。
私が使用する設定ファイルは次のとおりです。
[options]
debug_mode = False
admin_passwd = ******
db_user = ******
db_password = *******
price_accuracy = 5
smtp_server = **********
ftp_server_port = 8022
ftp_server_passive_ports = 8192:8447
translate_data = False
#log_level = debug_rpc_answer