मैं खस्ता सदस्यों को पहचानने के लिए पायलिन को कैसे प्राप्त करूं?


163

मैं पायथन प्रोजेक्ट पर PyLint चला रहा हूं। PyLint सुन्न सदस्यों को खोजने में असमर्थ होने के बारे में कई शिकायतें करता है। सदस्यता की जाँच से बचने के दौरान मैं इससे कैसे बच सकता हूँ।

कोड से:

import numpy as np

print np.zeros([1, 4])

जो, जब दौड़ा, मुझे उम्मीद है:

[[0. 0. 0. 0.]]

हालाँकि, pylint मुझे यह त्रुटि देता है:

E: 3, 6: मॉड्यूल 'सुन्न' का कोई 'शून्य' सदस्य (कोई सदस्य नहीं) है

संस्करणों के लिए, मैं pylint 1.0.0 (astroid 1.0.1, आम 0.60.0) का उपयोग कर रहा हूं और 1.8.0 अंकों के साथ काम करने की कोशिश कर रहा हूं।

जवाबों:


75

यदि डॉन जयमने के उत्कृष्ट पायथन विस्तार के साथ विजुअल स्टूडियो कोड का उपयोग किया जाता है , तो श्वेतसूची के लिए एक उपयोगकर्ता सेटिंग जोड़ें:

{
    // whitelist numpy to remove lint errors
    "python.linting.pylintArgs": [
        "--extension-pkg-whitelist=numpy"
    ]
}

2
इससे मदद मिली! VSCode 1.12.2 पर पुष्टि की है कि यह 10 x64 पर काम करता है।
सिमरा

8
मैं और अधिक की जरूरत है: "python.linting.pylintArgs": [ "--ignored-मॉड्यूल = numpy", "--ignored वर्गों = numpy", "--extension-pkg-श्वेत सूची = numpy"]
पीटर

2
विंडोज 7 x64 और विजुअल स्टूडियो कोड 1.15.1 में @Peter का समाधान काम कर रहा है !!
बसपा

3
@ पीएसपी पीटर की पोस्ट समस्या को हल नहीं करती है, इसे अनदेखा करती है। अगर मैं इस टिप्पणी को अस्वीकार कर सकता / सकती हूं ..
जोनाथन एच।

4
यह मेरे लिए अब pylint 2.3.0 के साथ काम नहीं कर रहा है।
गुइलूचोन

58

मैं भी सभी संबंधित संकुल के नवीनतम संस्करण के साथ यहां एक ही मुद्दा था, ( astroid 1.3.2, logilab_common 0.63.2, pylon 1.4.0)।

निम्नलिखित समाधान ने एक आकर्षण की तरह काम किया: मैंने अनुभाग में, numpyअपनी pylintrcफ़ाइल को संशोधित करके उपेक्षित मॉड्यूल की सूची में जोड़ा [TYPECHECK]:

[TYPECHECK]

ignored-modules = numpy

त्रुटि के आधार पर, आपको निम्न पंक्ति (अभी भी [TYPECHECK] section) जोड़ना होगी :

ignored-classes = numpy

2
Pylint 1.4.4, astroid 1.3.8 और Python 3.4.3 के साथ linux पर, इसने काम किया, लेकिन मुझे .pylintrc फ़ाइल extension-pkg-whitelist=numpyके [MASTER]शीर्षक के तहत लाइन डालनी पड़ी। pylint काफी भंगुर सॉफ्टवेयर लगता है और इसे बुनियादी कार्यों के लिए काम करने के लिए एक विशेषज्ञ के स्पर्श की आवश्यकता होती है।
एरिक लेसचिंस्की

12
यह एक अच्छा उपाय नहीं है। यह सब करता है किसी भी सदस्यों के अस्तित्व के लिए पूरी तरह से pylint जाँच अक्षम है। आदर्श रूप से आप यह चाहते हैं कि वे उन्हें ठीक से पहचान सकें, जो अन्य समाधान करते हैं।
इरेलिच्ट

1
@iFreilicht यह एक सुरक्षा उपाय है। रनटाइम पर, मॉड्यूल परिभाषाएं गतिशील रूप से बदल सकती हैं; लेकिन पाइलिंट में इसे सक्षम करने से मनमाना कोड चलाना शामिल होगा। फिर भी मैं अभी भी उत्तर में किसी प्रकार के नोट की उम्मीद करूंगा --extension-pkg-whitelist, जो वास्तव में निर्दिष्ट मॉड्यूल के लिए आयात करता है।
ज़ेव स्पिट्ज़

43

मैं उसी छोटी सी त्रुटि परियोजना के लिए त्रुटि प्राप्त कर रहा था जिस पर मैं काम कर रहा था और निर्णय लिया कि खस्ता मॉड्यूल की अनदेखी करना ठीक होगा। मैंने इसके .pylintrcसाथ एक फ़ाइल बनाई :

$ pylint --generate-rcfile > ~/.pylintrc

और निम्नलिखित पादुवन और j_houg की सलाह के बाद मैंने निम्नलिखित क्षेत्रों को संशोधित किया:

[MASTER]

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code
extension-pkg-whitelist=numpy

तथा

[TYPECHECK]

# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis. It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=numpy

# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set). This supports can work
# with qualified names.
ignored-classes=numpy

और यह मेरा मुद्दा "तय" है।


6
क्या आप वाकई इसे दो ignored-*प्रवेश द्वारों पर जोड़ना चाहते हैं? मेरे लिए, विस्तार श्वेतसूची में एक मॉड्यूल को जोड़ना पूरी तरह से काम करता है।
इरेलिच्ट

39

Pylint के हाल के संस्करणों में आप --extension-pkg-whitelist=numpyअपने pylint कमांड में जोड़ सकते हैं । उन्होंने इस समस्या को असुरक्षित तरीके से एक पुराने संस्करण में तय किया था। अब यदि आप चाहते हैं कि वे मानक पुस्तकालय के बाहर एक पैकेज पर अधिक ध्यान से देखें, तो आपको इसे स्पष्ट रूप से श्वेत सूची में लाना होगा। यहाँ देखें।


2
"यहाँ देखें" लिंक मृत है। समाधान अभी भी काम कर रहा है, यह समझना मुश्किल है (एर), क्यों। लिंक्ड इश्यू के एक अंश को जोड़ना अच्छा होगा।
GergelyPolonkai

"यहां देखें" लिंक को ठीक कर दिया गया है (अब गितुब में इसी मुद्दे को संदर्भित करता है)
डेविड क्लार्क

ऐसा लगता है कि यह मॉड्यूल और पैकेज के लिए काम करता है लेकिन वर्ग के नाम नहीं।
इयान ए। मेसन

17

चूंकि यह Google में शीर्ष परिणाम है और इसने मुझे यह धारणा दी है कि आपको सभी फाइलों में उन चेतावनियों को अनदेखा करना होगा:

समस्या वास्तव में pylint / astroid पिछले महीने के स्रोतों में तय किया गया है https://bitbucket.org/logilab/astroid/commits/83d78af4866be5818f193360c78185e1008fd29e लेकिन उबंटू संकुल में अभी तक नहीं कर रहे हैं।

स्रोतों को प्राप्त करने के लिए, बस

hg clone https://bitbucket.org/logilab/pylint/
hg clone https://bitbucket.org/logilab/astroid
mkdir logilab && touch logilab/__init__.py
hg clone http://hg.logilab.org/logilab/common logilab/common
cd pylint && python setup.py install

जिससे अंतिम चरण की सबसे अधिक संभावना होगी sudoऔर निश्चित रूप से आपको क्लोन करने के लिए मर्क्यूरियल की आवश्यकता होगी।


मैं यह कहूंगा कि आपको नए logilab / आम क्लोन करने की आवश्यकता नहीं है लेकिन आपको नया logilab / astroid स्थापित करने की आवश्यकता है। Logilab / astroid और logilab / pylint को फिर से स्थापित करके, यह मेरे लिए बग को हल करता है।
पागियर

7
आप किन संस्करणों का उपयोग कर रहे हैं? मैं एस्ट्रोइड 1.3.2 और पाइलिंट 1.4.0 पर हूं और मुझे अभी भी इस कोड की समस्या है from numpy import ceil परिणामE: 1, 0: No name 'ceil' in module 'numpy' (no-name-in-module) है क्योंकि मैंने ऊपर उल्लिखित प्रतिबद्ध की जांच की और यह प्रतीत होता है कि वे परिवर्तन एस्ट्रोइड के संस्करण में हैं।
ज़ैक ड्वायल

2
जैसा कि Xubuntu 14.04 पर सुझाया गया था और इसके परिणामस्वरूप एक गैर-कार्यशील pylint था: py2.7.egg / pylint / lint.py ", पंक्ति 866, check_astroid_module astroid.close () में संलग्न करें: 'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है ' करीब '
bli

3
शायद यह एक प्रतिगमन है - समस्या को ठीक करने के उद्देश्य से जारी किया गया प्रतीत होता है। किसी भी तरह से, मैंने इसके बारे में एक नया मुद्दा bitbucket.org/logilab/pylint/issue/453/…
dstromberg पर खोला है

4
स्पष्ट रूप से यह अभी भी pylint 1.4.2, astroid 1.3.4 में तय नहीं है: Module 'numpy' has no 'zeros' member (no-member)
बिल '

12

Numpy.core की विशेषताओं द्वारा उत्पन्न सभी त्रुटियों को अनदेखा करने के लिए, हम अब उपयोग कर सकते हैं:

$ pylint a.py --generated-members=numpy.*

एक अन्य समाधान के रूप में, इस विकल्प को ~ / .pylintrc या / etc / pylintrc फ़ाइल में जोड़ें:

[TYPECHECK]

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*

अब तक प्रश्न कोड में उल्लेख के लिए यह निरर्थक लगता है, लेकिन फिर भी एक और मॉड्यूल के लिए मायने रखता है, अर्थात। जाल और आदि


उपयोग करते समय मुझे भी यही समस्या थी patsy.dmatrices। जोड़ा जा रहा है generated-members=patsy.dmatricesमेरी समस्या हल।
जोनास डेहल्बक

12

यदि आप अधिक कॉन्‍फ़िगर जोड़ना नहीं चाहते हैं, तो कृपया 'व्‍हाइटेलिस्‍ट' के बजाय कृपया इस कोड को अपनी कॉन्‍फ़िगर फ़ाइल में जोड़ें।

{
"python.linting.pylintArgs": ["--generate-members"],
}

9
आपको यह उल्लेख करना चाहिए कि यह विशेष रूप से वीएस कोड पर लागू होता है।
BERS

यह आउटपुट होगाpylint: error: no such option: --generate-members
स्पेसशिप 222

8

पिछले कुछ वर्षों में इस बारे में कई अलग-अलग बग रिपोर्ट किए गए हैं। https://bitbucket.org/logilab/pylint/issue/58/false-positive-no-member-on-numpy-imports

मैं उन पंक्तियों के लिए अक्षम करने का सुझाव दूंगा जहां शिकायतें होती हैं।

# pylint: disable=E1103
print np.zeros([1, 4])
# pylint: enable=E1103

10
मैं इतना खसखस ​​का उपयोग करता हूं, कि मैं पूरी फाइल में बिना सदस्य की जांच को अक्षम कर सकता हूं, हालांकि, मैं ऐसा करने से बचना चाहता हूं।
अल्फालदत्त १४

2
-1 सिर्फ इसलिए कि @ बीजन के जवाब को अब इस बात का जवाब देना चाहिए।
लंदनरोप

@LondonRob हालांकि यह नहीं है। 1.4.2 में समस्या अभी भी मौजूद है। धान का घोल इस लिहाज से बेहतर है कि इसमें आपके कोड में हैकी क्रॉफ्ट को जोड़ने की जरूरत नहीं है।
naught101

7

शायद, यह आयात के तरीके के संख्यात्मक विधि के साथ भ्रमित है। अर्थात्, zerosवास्तव में है numpy.core.multiarray.zeros, बयान के साथ numpy में आयातित

from .core import *

बदले में आयात किया गया

from .numeric import *

और संख्यात्मक में आप पाएंगे

zeros = multiarray.zeros

मुझे लगता है कि मैं PyLint के स्थान पर भ्रमित हो जाएगा!

देखें इस बग को देखने के PyLint पक्ष के लिए।


मैं चाहता हूं कि मैं सिर्फ इस तरह से एकल तरीकों का आयात कर सकता हूं, लेकिन मैं बहुत अधिक कार्यों का उपयोग करता हूं और यह आयात को बहुत बड़ा गड़बड़ बना देगा।
अल्फालदत्त १४

@ Alphadelta14 उन सभी को खोजने के लिए भी एक बड़ी गड़बड़ होगी। मेरे उत्तर के अंत में लिंक में सुझाव देखें।
एल्को

2
यह SO लिंक PyLint को कुछ मॉड्यूल आयात करने की अनदेखी करता है। मुझे यकीन नहीं है कि यह उन फाइलों के लिए नो-मेंबर की त्रुटियों को दबा देगा। मैं भी अगर संभव हो तो अपने PyLint को पैच करने से बचना चाहूंगा।
अल्फालदत्त 14

@ Alphadelta14 मुझे लगता है कि आपको तब पैलिंट के लिए एक पैच का इंतजार करना चाहिए।
एल्को

4

मुझे इसे किसी भी फ़ाइल के शीर्ष पर जोड़ना था जहां मैं बहुत खसखस ​​का उपयोग करता हूं।

# To ignore numpy errors:
#     pylint: disable=E1101

बस अगर किसी को ग्रहण में कोई परेशानी हो रही है तो वह पयदेव और पाइलट के साथ ...


4

J_hougs उत्तर के विस्तार में, आप अब इस लाइन में .pylintrc, जो पहले से ही पीढ़ी पर खाली तैयार है, के लिए मॉड्यूल जोड़ सकते हैं:

extension-pkg-whitelist=numpy

आप एक नमूना बना सकते हैं।

pylint --generate-rcfile > .pylintrc

और फिर उल्लेखित पंक्ति को संपादित करें


4

यह अंत में Pylint 1.8.2 में हल किया गया है। बॉक्स से बाहर काम करता है, कोई pylintrc tweaks की जरूरत है!


3

यह छद्म समाधान है जो मैं इस समस्या के लिए आया हूं।

#pylint: disable=no-name-in-module
from numpy import array as np_array, transpose as np_transpose, \
      linspace as np_linspace, zeros as np_zeros
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module

फिर, अपने कोड में, बजाय बुलाने की numpyके रूप में कार्य np.arrayऔर np.zerosऔर इतने पर, आपके द्वारा लिखी हैं np_array, np_zerosआदि इस दृष्टिकोण अन्य उत्तर में सुझाव अन्य तरीकों बनाम के लाभ:

  • पाइलिंट अक्षम / सक्षम आपके कोड के एक छोटे से क्षेत्र में प्रतिबंधित है
  • इसका मतलब है कि आपको हर एक पंक्ति को घेरने की ज़रूरत नहीं है, जिसमें पाइलिंट निर्देश के साथ एक सुस्पष्ट कार्य का एक निमंत्रण है।
  • आप अपनी पूरी फ़ाइल के लिए त्रुटि के पाइलिंट को अक्षम नहीं कर रहे हैं, जो आपके कोड के साथ अन्य मुद्दों को मुखौटा कर सकता है।

स्पष्ट नुकसान यह है कि आपको अपने द्वारा उपयोग किए जाने वाले प्रत्येक खट्टे फ़ंक्शन को स्पष्ट रूप से आयात करना होगा। इस दृष्टिकोण को और विस्तृत किया जा सकता है। आप अपने खुद के मॉड्यूल को परिभाषित कर सकते हैं, इसे कहते हैं, numpy_importerनिम्नानुसार है

""" module: numpy_importer.py
       explicitely import numpy functions while avoiding pylint errors  
"""
#pylint: disable=unused-import
#pylint: disable=no-name-in-module
from numpy import array, transpose, zeros  #add all things you need  
from numpy.random import uniform as random_uniform
#pylint: enable=no-name-in-module

फिर, आपका एप्लिकेशन कोड इस मॉड्यूल को केवल (numpy के बजाय) आयात कर सकता है

import numpy_importer as np 

और हमेशा की तरह नाम का उपयोग: np.zeros, np.arrayआदि

इसका लाभ यह है कि आपके पास एक एकल मॉड्यूल होगा जिसमें सभी numpyसंबंधित आयात एक बार और सभी के लिए किए जाते हैं, और फिर आप इसे उस एकल पंक्ति के साथ आयात करते हैं, जहां आप चाहते हैं। फिर भी आपको सावधान रहना होगा कि उन numpy_importerनामों को आयात न करें जो मौजूद नहीं हैं numpyक्योंकि उन त्रुटियों को पाइलिंट द्वारा नहीं पकड़ा जाएगा।


2

मुझे स्तब्ध, स्केपी, स्केलेर, निपी, आदि के साथ यह समस्या थी, और मैंने इसे एपिलिन जैसे लपेटकर हल किया:

$ cat epylint.py

#!/usr/bin/python

"""
Synopsis: epylint wrapper that filters a bunch of false-positive warnings and errors
Author: DOHMATOB Elvis Dopgima <gmdopp@gmail.com> <elvis.dohmatob@inria.fr>

"""

import os
import sys
import re
from subprocess import Popen, STDOUT, PIPE

NUMPY_HAS_NO_MEMBER = re.compile("Module 'numpy(?:\..+)?' has no '.+' member")
SCIPY_HAS_NO_MEMBER = re.compile("Module 'scipy(?:\..+)?' has no '.+' member")
SCIPY_HAS_NO_MEMBER2 = re.compile("No name '.+' in module 'scipy(?:\..+)?'")
NIPY_HAS_NO_MEMBER = re.compile("Module 'nipy(?:\..+)?' has no '.+' member")
SK_ATTR_DEFINED_OUTSIDE_INIT = re.compile("Attribute '.+_' defined outside __init__")
REL_IMPORT_SHOULD_BE = re.compile("Relative import '.+', should be '.+")
REDEFINING_NAME_FROM_OUTER_SCOPE = re.compile("Redefining name '.+' from outer scope")

if __name__ == "__main__":
    basename = os.path.basename(sys.argv[1])
    for line in Popen(['epylint', sys.argv[1], '--disable=C,R,I'  # filter thesew arnings
                       ], stdout=PIPE, stderr=STDOUT, universal_newlines=True).stdout:
        if line.startswith("***********"):
            continue
        elif line.startswith("No config file found,"):
            continue
        elif "anomalous-backslash-in-string," in line:
            continue
        if NUMPY_HAS_NO_MEMBER.search(line):
            continue
        if SCIPY_HAS_NO_MEMBER.search(line):
            continue
        if SCIPY_HAS_NO_MEMBER2.search(line):
            continue
        if "Used * or ** magic" in line:
            continue
        if "No module named" in line and "_flymake" in line:
            continue
        if SK_ATTR_DEFINED_OUTSIDE_INIT.search(line):
            continue
        if "Access to a protected member" in line:
            continue
        if REL_IMPORT_SHOULD_BE.search(line):
            continue
        if REDEFINING_NAME_FROM_OUTER_SCOPE.search(line):
            continue
        if NIPY_HAS_NO_MEMBER.search(line):
            continue
        # XXX extend by adding more handles for false-positives here
        else:
            print line,

यह स्क्रिप्ट बस एपिलेन चलाती है, फिर झूठी सकारात्मक चेतावनियों और त्रुटियों को फ़िल्टर करने के लिए इसके आउटपुट को स्क्रैप करती है। आप इसे और अधिक एलीफ मामलों में बढ़ा सकते हैं।

NB: यदि यह आप पर लागू होता है, तो आप अपने pychechers.sh को संशोधित करना चाहते हैं, इसलिए यह इस तरह पसंद करता है

#!/bin/bash

epylint.py "$1" 2>/dev/null
pyflakes "$1"
pep8 --ignore=E221,E701,E202 --repeat "$1"
true

(बेशक, आपको पहले epylint.py निष्पादन योग्य बनाना होगा)

यहाँ मेरे .emacs https://github.com/dohmatob/mydotemacs का लिंक दिया गया है । आशा है कि यह किसी के लिए उपयोगी है।



2

इस समाधान ने मेरे लिए काम किया

मूल रूप से, नीचे बाईं ओर से गियर आइकन चुनें => सेटिंग => कार्यक्षेत्र सेटिंग => एक्सटेंशन => पायथन कॉन्फ़िगरेशन => किसी भी सेटिंग पर क्लिक करें ।json => इसे फ़ाइल में जोड़ें "python.linting.pylonArgs": [" - कस्टमेशन-pkg-whitelist = numpy "] मैं VS 1.27.2 का उपयोग कर रहा हूं


2

मुझे एक अलग मॉड्यूल ( kivy.properties) के साथ एक ही समस्या थी जो एक लिपटे सी मॉड्यूल की तरह हैnumpy

VSCode V1.38.0 का उपयोग करते हुए, स्वीकृत समाधान ने परियोजना के लिए सभी लाइनिंग को रोक दिया। तो, जबकि यह वास्तव में झूठी सकारात्मक को हटा दिया थाno-name-in-module , तो इससे वास्तव में स्थिति में सुधार नहीं हुआ।

मेरे लिए सबसे अच्छा समाधान --ignored-modulesअपमानजनक मॉड्यूल पर तर्क का उपयोग करना था । मुसीबत यह python.linting.pylintArgsहै कि डिफ़ॉल्ट VSCode सेटिंग्स को मिटा देने के माध्यम से किसी भी तर्क को पारित करना , इसलिए आपको उन लोगों को भी फिर से सेट करने की आवश्यकता है। उसने मुझे निम्न सेटिंग्स के साथ छोड़ दिया। json फ़ाइल:

{
    "python.pythonPath": "C:\\Python\\Python37\\python.exe",
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.linting.pylintArgs": [
        "--ignored-modules=kivy.properties",
        "--disable=all",
        "--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode"
    ]
}

"python.linting.pylintArgs": ["- विशेष सदस्य = kivy.properties"]
यी

1

जो काम कर रहा है उसे संक्षेप में बताने के लिए पिछले उत्तर से थोड़ा सा कॉपी पेस्ट करें (कम से कम मेरे लिए: डेबियन-जेसी)

  1. वहाँ के कुछ पुराने संस्करण में pylintयह एक समस्या थी जो इसे सुन्न (और अन्य समान पैकेज) के साथ काम करने से रोक रही थी।

  2. अब वह समस्या हल हो गई है लेकिन बाहरी सी पैकेज (अजगर सी कोड की तरह numpy-) इंटरफेस सुरक्षा कारणों से डिफ़ॉल्ट रूप से अक्षम हैं।

  3. आप एक सफेद सूची बना सकते हैं, pylintउन्हें फ़ाइल में उपयोग करने की अनुमति देने के लिए ~/.pylintrc

चलाने के लिए मूल आदेश: # यदि आपके पास पहले से ही आपके घर में $ pylint --generate-rcfile> .pylintrc फ़ाइल नहीं है।

फिर फ़ाइल खोलें और extension-pkg-whitelist=कॉमा द्वारा अलग किए जाने के बाद इच्छित पैकेज जोड़ें । आप विकल्प का उपयोग करके एक ही व्यवहार कर सकते हैं--extension-pkg-whitelist=numpy कमांड लाइन से ।

यदि आप [TYPECHECK]अनुभाग में कुछ संकुल को अनदेखा करते हैं जिसका अर्थ है कि pylintउस संकुल से संबंधित त्रुटि कभी नहीं दिखाई देगी। व्यवहार में, pylintआपको उन पैकेजों के बारे में कुछ भी नहीं बताएगा।


0

मैं एक पैच पर काम कर रहा हूँ अंकगणित में पुस्तकालयों में गतिशील सदस्यों के साथ इस मुद्दे को हल करने के लिए। यह एक "डायनेमिक-मॉड्यूल" विकल्प जोड़ता है जो यह जांचने के लिए मजबूर करता है कि क्या सदस्य मॉड्यूल का वास्तविक आयात करके रनटाइम के दौरान मौजूद हैं। Logilab / pylint में अंक # 413 देखें । एक पुल अनुरोध भी है, टिप्पणियों में से एक में लिंक देखें।


यह है कि कैसे pydev इसे हल करता है (लोड-निरीक्षण करने के लिए मॉड्यूल की एक विशेष सूची)। कैसे काम चल रहा है?
एपीयू

0

एक त्वरित उत्तर: 1.7.1 के लिए पाइलिंट को अपडेट करें (यदि आप संकुल को प्रबंधित करने के लिए कोंडा का उपयोग करते हैं तो कंडला-फोर्ज प्रदान किया गया है। 1.7.1)

मुझे यहाँ पाइलिंट गिटहब में एक समान मुद्दा मिला और किसी ने 1.7.1 को अपडेट करने के बाद सब कुछ ठीक होने का जवाब दिया।


0

मुझे यकीन नहीं है कि यह एक समाधान है, लेकिन VSCode में एक बार मैंने स्पष्ट रूप से अपने उपयोगकर्ता सेटिंग्स में pylint को सक्षम करने के लिए लिखा था, सभी मॉड्यूल को मान्यता दी गई थी।

{
    "python.linting.pep8Enabled": true,
    "python.linting.pylintEnabled": true
}

0

हाल ही में (चूंकि स्पाईडर या पाइलिंट या?) में कुछ बदल गया है, मुझे एस्ट्रोपी.कॉस्टेंट्स प्रतीकों पर स्पाइडर के स्थिर कोड विश्लेषण से ई 1101 त्रुटियां ("कोई सदस्य नहीं") मिल रही हैं। पता नहीं क्यों।

लिनक्स या यूनिक्स प्रणाली पर सभी उपयोगकर्ताओं के लिए मेरा सरलीकृत समाधान (मैक शायद समान है) एक / etc / pylintrc बनाने के लिए है:

[TYPECHECK]
ignored-modules=astropy.constants

बेशक, यह, इसके बजाय, व्यक्तिगत $ HOME / .pylintrc फ़ाइल में डाला जा सकता है। और, मैं एक मौजूदा फाइल को अपडेट कर सकता था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.