उबंटू में पायथन 3 के लिए पाइलिंट स्थापित करना


31

मेरी समझ यह है कि पाइलिंट (इस लेखन के समय) की नवीनतम रिलीज़ में पायथन 3 के लिए समर्थन है, लेकिन मैं इसे पायथन 3.3 के साथ 64-बिट उबंटू 13.04 पर काम करने के लिए नहीं प्राप्त कर सकता हूं।

मैंने PyPi साइट पर इंस्टॉलेशन निर्देशों का पालन किया , और Pylint 1.0.0 को सफलतापूर्वक स्थापित किया जा रहा है ( pylint --versionpylint 1.0.0 लौटाता है), और Python 2.7 कोड के साथ काम करता है, लेकिन यह गैर-वाक्य विवरण और ऐसे देखने पर एक सिंटैक्स त्रुटि की रिपोर्ट करता है।

क्या देता है? क्या उबंटू पर पाइलिंट के लिए विशेष स्थापना निर्देश हैं?

जवाबों:


27

अजगर 2 और 3 अलग जानवर हैं। यदि आप एक संस्करण के साइट-संकुल में एक स्क्रिप्ट स्थापित करते हैं, तो आप इसे दूसरे में स्थापित नहीं कर रहे हैं।

मैं इसे पाइप के माध्यम से स्थापित करूंगा, लेकिन आपको पाइप के सही संस्करण की आवश्यकता होगी।

sudo apt-get install python3-pip
sudo pip-3.3 install pylint

यह आपके 2.7 संस्करण को बदल देगा । हम जाँच करके इसकी पुष्टि कर सकते हैं less $(which pylint):

#!/usr/bin/python3.3
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint==1.0.0','console_scripts','pylint'
__requires__ = 'pylint==1.0.0'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pylint==1.0.0', 'console_scripts', 'pylint')()
    )

महान। यह काम करता है। फिर भी, मैं ध्यान देता हूं कि उन कमांडों ने मेरी मशीन पर 2.7 संस्करण को प्रतिस्थापित नहीं किया है । मुझे इसे 2.7 डिस्ट-पैकेज से निकालना था, और फिर कमांड्स रीयर करना था।
जेराद गेंसन

3
@ तो अगर मैं अजगर 3 के लिए pylint स्थापित करता हूं तो डिफ़ॉल्ट अजगर 2 संस्करण काम नहीं करता है?
Sayth

5
मुझे पता चला कि वहाँ भी एक pylint3 जो आप के साथ स्थापित कर सकते हैं है नए संस्करणों के साथ (अजगर 3.5 आदि नवंबर 2016 के रूप में) है कि: sudo apt install pylint3
रिक हेंडरसन

21

@sayth की स्वीकृत टिप्पणी पर टिप्पणी की गई थी कि मुझे यहां क्या आकर्षित किया गया है - मैं अजगर 2 और अजगर 3 स्क्रिप्ट लिखता हूं, और मैं सही नियम के खिलाफ या तो जांच करने में सक्षम होना चाहता हूं। pylint का उपयोग करके pip3 install pylintएक छोटी स्क्रिप्ट लिखता है, /usr/local/binजो python3 दुभाषिया को आमंत्रित करता है, और लगता है, इसलिए सभी फ़ाइलों की जाँच करने के लिए मान लिया जाए कि पायथन 3 स्क्रिप्ट हैं।

इसके आसपास काम करने के लिए, मेरे पास अब निम्नलिखित फाइलें हैं:

~/bin/pylint2:

#!/usr/bin/python2
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint','console_scripts','pylint'
__requires__ = 'pylint'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pylint', 'console_scripts', 'pylint')()
    )

और ~/bin/pylint3:

#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'pylint','console_scripts','pylint'
__requires__ = 'pylint'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pylint', 'console_scripts', 'pylint')()
    )

और फिर, क्योंकि मुझे गीन के "बिल्ड कमांड" मेनू से सीधे पाइलिंट का उपयोग करना पसंद है, और मैं अजगर 2 और अजगर 3 लिपियों के लिए अलग-अलग कमांड निर्दिष्ट नहीं कर सकता, मेरे पास भी है ~/bin/pylint:

#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
    # python3 file
    pylint3 "$@"
else
    pylint2 "$@"
fi

जो शेबंग को सूँघ कर सही संस्करण भेजता है।

सही नहीं, निश्चित रूप से, लेकिन कार्यात्मक और, शायद, दूसरों के लिए उपयोगी।


11

पाइलिनट इकोसिस्टम तब से बदल गया है (जब यह प्रश्न पूछा गया था), और अब पाइथन 3 के लिए एक अलग पाइलिंट है। इसके साथ स्थापित किया जा सकता है:

sudo apt install pylint3

मेरे लिए Ubuntu 16.04.2 LTS पर काम किया


1
यह मेरे लिए भी काम करता है। Python3 के लिए स्थापित pylint, और फिर भी python 2 के लिए pylint रखें।
zhihong

यह उत्तर सिस्टम-वाइड इंस्टॉलेशन के लिए सही है।
jII

7

पायथन 2 और 3 दोनों पर पाइलिंट चलाने के लिए एक अन्य विधि के रूप में, ध्यान दें कि आप पायथन के -mमौजूदा संस्करण में सिस्टम पर स्थापित मॉड्यूल को चलाने के लिए पायथन के स्विच का उपयोग कर सकते हैं , इसलिए आप कर सकते हैं

$ python2 -m pylint
$ python3 -m pylint

स्पष्ट रूप से चयन करें कि आप कौन सा चाहते हैं। यदि आप चाहते थे तो आप इन्हें उपनाम या शेल स्क्रिप्ट में बना सकते हैं।


2

समस्या की जड़ यह है कि पाइल्ट / usr / स्थानीय / बिन / pylint2 और / usr / स्थानीय / बिन / pylint3 के लिए प्रवेश बिंदु कंसोल स्क्रिप्ट के साथ आना चाहिए। इसे एक बग माना जाना चाहिए।

निम्नलिखित काम नहीं करता है; यह अभी भी pylint2 चलाता है:

python3 -m pylint p3file.py

निम्नलिखित वह है जो मैं सफलतापूर्वक उपयोग कर रहा हूं:

python2 /usr/local/bin/pylint p2file.py
python3 /usr/local/bin/pylint p3file.py

0

यह ठीक जवाब सिमंस के जवाब में है। मैंने इसके बारे में एक अलग तरीके से सोचा और सोचा कि यह उन लोगों के लिए उपयोगी हो सकता है जो अजगर / पाइलिंट के कई संस्करणों के लिए समाधान चाहते हैं।

3.x के लिए पाइलिन्ट स्थापित करना और 2.7 डिफ़ॉल्ट या विसे वर्सा रखना वर्चुअलाइव का उपयोग करके आसानी से किया जाता है।

अपना आभासी वातावरण बनाएँ। सक्रिय रहते हुए अपने env में

    pip install pylint

यहां आप तब पता लगा सकते हैं कि आपके ईव ने आपके अजगर और पाइलिंट को कहां रखा है

    which pylint
    #/home/$USER/Desktop/python/awesomeSauce/bin/pylint

और फिर

    which python
    #/home/$USER/Desktop/python/awesomeSauce/bin/python

फिर उस लाइनिंग पथ और / या अजगर पथ का उपयोग करने के लिए अपनी विचारधारा स्थापित करने की बात है। मुझे पता है कि यह Sublime3 के साथ काम करता है इसलिए Ill नीचे के उदाहरण में इसका उपयोग करता है।

शीर्ष लेख मेनू में उदात्तता में प्राथमिकताएँ> पैकेज सेटिंग्स> पाइलिटर्न> सेटिंग्स - उपयोगकर्ता का चयन करें।

यह सिर्फ एक जासन ऑब्जेक्ट है। ठीक

    "python_bin": "python",
    // to the python path found earlier by 'which python'
    "python_bin": "/home/$USER/Desktop/python/awesomeSauce/bin/python",
    // dont for get the coma if it is the last element.
    // We also change the pylint_path from
    "pylint_path": null,
    // to
    "pylint_path": "/home/$USER/Desktop/python/awesomeSauce/bin/pylint",
    // sorry I cant make the formatting look any better.

फ़ाइल सहेजें। मैं फ़ाइल की एक प्रति भी बनाता हूं और इसे उस वेव डायरेक्टरी में रखता हूं ताकि जब मुझे इस लिंटर की आवश्यकता हो तो मैं इस कॉन्फिग को कॉपी और पेस्ट करके आसानी से स्विच कर सकूं। जब मैं उपयोगकर्ता के लिए डिफ़ॉल्ट रूप से वापस Pylinter.sublime- सेटिंग्स को रीसेट नहीं करता हूं और मुझे लगता है कि यह सबसे आसान तरीका है। क्षमा करें, मुझे विंडोज़ कमांड्स का पता नहीं है या मैंने उन्हें वहाँ रखा होगा।

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