سؤال

أنا على وشك البدء في كمية عادلة من العمل تمديد TRAC لتناسب متطلبات أعمالنا. حتى الآن لقد استخدمت Pythonwin والآن Netbeans 6.5 كبيئات التطوير - لا يبدو أن أي منها يوفر أي طريقة لتصحيح البرنامج المساعد الذي أعمل عليه.

أنا جديد تماما في بيثون لذلك ربما لم ينشئ بيئة التطوير كيف يمكن أن يكون congfiggured للحصول عليه تصحيح الأخطاء.

هل أفتقد شيئا واضحا؟ يبدو أن العقيقة بعض الشيء يجب أن تلجأ إلى طباعة رسائل التصحيح إلى سجل TRAC، وهذا هو كيفية تصحيح الأخطاء في الوقت الحالي.

هل كانت مفيدة؟

المحلول

يمكنك إنشاء البرنامج النصي WHPPER WSGI وتشغيله في مصحح الأخطاء. علي سبيل المثال:

import os
import trac.web.main

os.environ['TRAC_ENV'] = '/path/to/your/trac/env'

application = trac.web.main.dispatch_request

from flup.server.fcgi import WSGIServer
server = WSGIServer(application, bindAddress=("127.0.0.1", 9000), )
server.run()

سوف تقوم بتشغيل هذا البرنامج النصي في المصحح، ويمكنك استخدام LightPD كترويبية لتطبيق الويب مع تكوين تافه مثل هذا واحد:

server.document-root = "/path/to/your/trac/env"
server.port = 1234
server.modules = ( "mod_fastcgi" )
server.pid-file = "/path/to/your/trac/env/httpd.pid"
server.errorlog = "/path/to/your/trac/env/error.log"
fastcgi.server = ( "/" =>
  (( "host" => "127.0.0.1",
     "port" => 9000,
     "docroot" => "/",
     "check-local" => "disable",
  ))
)

فقط قم بتشغيل FCGI WSGI Wrapper في المصحح، قم بتعيين نقاط التوقف في البرنامج المساعد الخاص بك، وفتح صفحة الويب.

نصائح أخرى

عادة، نحن وحدة اختبار أولا.

بعد ذلك، نكتب رسائل السجل لتشخيص المشكلات.

نحن لا نعتمد بشدة على تصحيح الأخطاء لأنه غالبا ما يتم القيام به في المواقف التي يتم فيها تضمين نصوص Python في منتج أكبر.

لقد وجدت أن WinPDB. هو مصحح بيثون لائق.

ولكن كما يشير S.LOTT، قد لا يكون الحسائق مفيدا للغاية بالنسبة لك عندما يكون مشروعك جزءا لا يتجزأ من واحد أكبر.

يحتوي TRAC على أمثلة جيدة على رمز Python، باستخدامه كإرشادات ستساعد في تجنب الأخطاء. فقط تأكد من اختبار التعليمات البرمجية الخاصة بك، وتفعل ذلك في كثير من الأحيان لأنك جديد على python ... ستجد أنك لا تحتاج إلى مصحح.

للاختبار الوحدة، تحقق من بيونيت.

لقد وجدت أنه أكثر فائدة لإضافة صناديق الرسائل التراك الهائلة في وقت التشغيل كمساعدة تصحيح أو تتبع، تماما مثل هذا:

from trac.web.chrome import add_notice
...
def any_function_somewhere(self, req, ...anyother args...):
    ...
    var = ...some value...
    add_notice(req, "my variable value I am tracing %s" % var)

في بعض الأحيان يكون الأمر أكثر راحة من قراءة التسجيل بعد ذلك. على الرغم من أنه يعمل فقط إذا كانت الوظيفة التي تعمل بها req arg

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top