2011-12-21 27 views
7

günler,Yapılandırma PyLint Django bir takım projeler ve git depoları gibi diğer Python bir takım projeler var

yansıtır. Pylint'i kodumda çalıştıran bir ön-bağlantı kancam var, bu sayede bende bunu yapmama izin verin - bu kanca projenin bir Django uygulaması mı yoksa vanilya Python projesi mi olduğunu bilmiyor. Ben bu projede PyLint çalıştırdığınızda Şimdi

> my_django_project 
|-- manage.py 
|-- settings.py 
|--> apps 
    |--> my_django_app 
     |-- models.py 
     |-- admin.py 

, bana böyle hatalar veriyor: Hepsi benim Django projeleri için

, ben böyle bir yapı var

F: 4,0: Unable to import 'my_django_app.models' 

için my_django_app.admin modülü için örnek. Benim django projelerinde (değil vanilya piton projeler) üzerinde giderken böylece

Nasıl, PyLint yapılandırmak yapmak, bu my_django_project/apps da sys.path olması gerektiğini bilir? Normal olarak, manage.py, onu sys.path'a ekler.

Teşekkürler!

+0

'my_django_project/apps' ve' my_django_project/apps/my_django_app' normal Python paketleri mi? Öyleyse, my_django_project/apps/__ init __. Py' ve 'my_django_project/apps/my_django_app/__ init __. Py' nerede? – Flimm

cevap

0

Belki bu tam olarak sorunuza cevap vermez, ama ben gibi uyarılar önlemek için, django-lint kullanmanızı öneririm:

F: 4: Unable to import 'myapp.views' 
E: 15: MyClass.my_function: Class 'MyClass' has no 'objects' member 
E: 77: MyClass.__unicode__: Instance of 'MyClass' has no 'id' member 
3

PyLint yapılandırma dosyasında init_hook bir göz atın.

init-hook=import sys; sys.path.insert(0, 'my_django_project/apps'); 

Sen örneğin Django uygulama başına bir yapılandırma dosyası gerekir ve sıra PyLint koşmak Açıkçası olacak Koterpillar harika cevap ekleme

pylint --rcfile=pylint.conf my_django_project 
+0

En iyisi .rcfile'ı projenin içinde tutmak ve daha sonra 'init-hook = import sys; sys.path.insert (0, 'uygulamalar'); '. Bu şekilde, projeyi devasa kod yazmadan devlerle paylaşabilirsiniz –

0

, ayrıca yapılandırabilir sizin önceden taahhüt my_django_project için geçerli dizini değiştirmek ve oradan PyLint çalıştırmak için kanca.