উবুন্টুতে পাইথন 3 এর জন্য পাইলেট ইনস্টল করা হচ্ছে


31

আমার বোধগম্যতা হল পাইলিন্টের সর্বশেষ প্রকাশ (এই লেখার সময় 1.0.0) পাইথন 3 এর পক্ষে সমর্থন করেছে তবে আমি পাইথন ৩.৩ দিয়ে 64৪-বিট উবুন্টু ১৩.০৪-তে কাজ করতে পারি না।

আমি পাইপিআই সাইটে ইনস্টলেশন সংক্রান্ত নির্দেশাবলী অনুসরণ করেছি এবং পাইলিন্ট ০.০.০ সফলভাবে ইনস্টল করা আছে বলে মনে হয় ( pylint --versionপাইলিন্ট ০.০.০ প্রদান করে) এবং পাইথন ২. code কোডের সাথে কাজ করে, তবে এটি ননলোকাল স্টেটমেন্ট এবং এগুলি দেখলে এটি একটি সিনট্যাক্স ত্রুটির প্রতিবেদন করে।

শেষ ঘন্টা? উবুন্টুতে পাইলিন্টের জন্য কি বিশেষ ইনস্টলেশন সংক্রান্ত নির্দেশাবলী রয়েছে?

উত্তর:


27

পাইথন 2 এবং 3 পৃথক জন্তু। আপনি যদি কোনও সংস্করণের সাইট-প্যাকেজগুলিতে কোনও স্ক্রিপ্ট ইনস্টল করেন তবে আপনি এটি অন্যটিতে ইনস্টল করছেন না।

আমি এটি পাইপের মাধ্যমে ইনস্টল করব, তবে আপনার পিপের সঠিক সংস্করণ প্রয়োজন।

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

এটি আপনার ২.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 এর জন্য পাইলিন্ট ইনস্টল করি তবে ডিফল্ট পাইথন 2 সংস্করণটি কাজ করে না?
sayth

5
আমি বুঝতে পারলাম এখানে একটা pylint3 যা আপনার সাথে ইনস্টল করতে পারেন হল নতুন সংস্করণের সাথে (পাইথন 3.5 ইত্যাদি নভেম্বর 2016 এর হিসাবে) যে: sudo apt install pylint3
রিক হেন্ডারসন

21

গৃহীত উত্তরের জন্য সায়েথের মন্তব্যটি আমাকে এখানে আকর্ষণ করেছিল - আমি পাইথন 2 এবং পাইথন 3 স্ক্রিপ্ট উভয়ই লিখি এবং আমি সঠিক নিয়মের বিপরীতে পরীক্ষা করতে সক্ষম হতে চাই। পাইলিন্ট ইনস্টল করে pip3 install pylintএকটি সংক্ষিপ্ত স্ক্রিপ্ট লিখেছেন /usr/local/binযা পাইথন 3 ইন্টারপ্রেটারকে আহ্বান করে এবং মনে হয়, সুতরাং সমস্ত ফাইল পরীক্ষা করা হবে বলে ধরে নেওয়া হল পাইথন 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

উবুন্টু 16.04.2 এলটিএসে আমার জন্য কাজ করেছেন


1
এটি আমার পক্ষেও কাজ করে। পাইথন 3 এর জন্য পাইলিন্ট ইনস্টল করা হয়েছে এবং এখনও পাইথন 2 এর জন্য পাইলটটি
রাখুন

এই উত্তরটি সিস্টেম ব্যাপী ইনস্টলেশনের জন্য সঠিক উত্তর।
jII

7

পাইথন 2 এবং 3 উভয় ক্ষেত্রে পাইলট চালানোর জন্য অন্য পদ্ধতি হিসাবে নোট করুন যে আপনি পাইথনের -mবর্তমান সংস্করণে সিস্টেমে ইনস্টল হওয়া মডিউলটি চালাতে পাইথনের সুইচটি ব্যবহার করতে পারেন , তাই আপনি এটি করতে পারেন

$ python2 -m pylint
$ python3 -m pylint

আপনি যা চান তা স্পষ্টভাবে নির্বাচন করতে। আপনি চাইলে এগুলি উপকরণ বা শেল স্ক্রিপ্টগুলিতে তৈরি করতে পারেন।


2

সমস্যার মূলটি হ'ল পাইলেটটি / usr / লোকাল / বিন / পাইলিন্ট 2 এবং / usr / লোকাল / বিন / পাইলিন্ট 3 এর জন্য এন্ট্রি পয়েন্ট কনসোল স্ক্রিপ্টগুলির সাথে আসা উচিত। এটি একটি বাগ হিসাবে বিবেচনা করা উচিত।

নিম্নলিখিতগুলি কাজ করে না ; এটি এখনও পাইলট 2 চালায়:

python3 -m pylint p3file.py

নিম্নলিখিতটি আমি সফলভাবে ব্যবহার করছি:

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

0

এটি সাইমনদের উত্তরের জবাবে। আমি এটি সম্পর্কে অন্যভাবে চিন্তা করেছি এবং ভেবেছিলাম এটি পাইথন / পাইলিন্টের একাধিক সংস্করণের সমাধান সন্ধানকারীদের পক্ষে কার্যকর হতে পারে।

3.x এর জন্য পাইলিন্ট ইনস্টল করা এবং 2.7 ডিফল্ট বা বিপরীতভাবে রাখা ভার্চুয়ালেনভ ব্যবহার করে সহজেই করা যায়।

আপনার ভার্চুয়াল পরিবেশ তৈরি করুন। সক্রিয় চালানোর সময় আপনার vভির মধ্যে

    pip install pylint

এখানে আপনি তা অনুমান করতে পারেন যে আপনার এনভিটি আপনার পাইথন এবং পাইলটটি কোথায় রেখেছে

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

এবং তারপর

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

তারপরে সেই আবরণ পথ এবং / বা অজগর পথটি ব্যবহার করার জন্য আপনার আদর্শ স্থাপনের বিষয় মাত্র। আমি জানি এটি সাব্লাইম 3 এর সাথে কাজ করে তাই নীচের উদাহরণে আমি এটি ব্যবহার করব।

শীর্ষ শিরোনামের মেনুতে সাবলেমে পছন্দসমূহ> প্যাকেজ সেটিংস> পাইলিন্টার> সেটিংস - ব্যবহারকারী নির্বাচন করুন।

এটি কেবল একটি জেসন অবজেক্ট। স্থির কর

    "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.

ফাইলটি সংরক্ষণ করুন। আমি ফাইলটির একটি অনুলিপিও তৈরি করে এটিকে ভেনভ ডিরেক্টরিতে রেখেছি যাতে যখন এই লিন্টারের দরকার হয় তখন আমি সহজেই এই কনফিগারটিটি অনুলিপি করে আটকে দিতে পারি। যখন আমি কেবল পাইলিন্টার.সুব্লাইম-সেটিংসগুলি ব্যবহারকারীর জন্য ডিফল্টে ফিরে আসি এবং এটি আমার কাছে পাওয়া সহজতম উপায় বলে মনে হয়। দুঃখিত, আমি উইন্ডোজ কমান্ডগুলি জানি না বা সেগুলি এখানে রাখতাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.