Pylint for Python3をUbuntuにインストールする


31

私の理解では、Pylintの最新リリース(この記事を書いている時点では1.0.0)はPython 3をサポートしていますが、Python 3.3を搭載した64ビットUbuntu 13.04で動作させることはできません。

PyPiサイトのインストール手順に従いましたが、Pylint 1.0.0は正常にインストールされているようで(pylint --versionpylint 1.0.0を返します)、Python 2.7コードで動作しますが、非ローカルステートメントなどを検出すると構文エラーを報告します。

何が得られますか?UbuntuでのPylintの特別なインストール手順はありますか?

回答:


27

Python 2と3は別々の獣です。あるバージョンのサイトパッケージにスクリプトをインストールする場合、他のバージョンにはインストールしません。

pipを使用してインストールしますが、適切なバージョンのpipが必要です。

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 dist-packagesから削除し、コマンドを再実行する必要がありました。
ジェラルドゲンソン

3
@Oliだから、python 3のpylintをインストールすると、デフォルトのpython 2バージョンは機能しませんか?
13

5
新しいバージョン(Python 3.5など2016年11月)では、pylint3もあることがわかりました sudo apt install pylint3
リックヘンダーソン

21

受け入れられた答えに対する@saythのコメントは、ここで私を引き付けたものでした-私はpython 2とpython 3の両方のスクリプトを書き、正しいルールセットに対してどちらかをチェックできるようにしたいです。を使用しpip3 install pylintてpylintをインストールすると/usr/local/bin、python3インタープリターを呼び出す短いスクリプトが書き込まれるため、チェック対象のすべてのファイルがpython 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')()
    )

そして、Geanyの「Build Commands」メニューから直接pylintを使用したいので、python 2とpython 3スクリプトに異なるコマンドを指定できないので、私も持っています ~/bin/pylint

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

これは、シバンをスニッフィングして正しいバージョンをディスパッチします。

完璧ではありませんが、機能的で、おそらく他の人にとっては便利です。


11

(この質問が尋ねられた後)以来、パイリントエコシステムは変化しており、python3には別のパイリントがあります。以下を使用してインストールできます。

sudo apt install pylint3

Ubuntu 16.04.2 LTSで私のために働いた


1
これも私には有効です。python3のためのpylintをインストールし、まだのpython 2用pylintを保つ
zhihong

この答えは、システム全体のインストールの正しい答えです。
jII

7

Python 2と3の両方でpylintを実行する別の方法として、Pythonの-mスイッチを使用して、現在のバージョンのPythonでシステムにインストールされているモジュールを実行できることに注意してください。

$ python2 -m pylint
$ python3 -m pylint

必要なものを明示的に選択します。必要に応じて、これらをエイリアスまたはシェルスクリプトにすることができます。


2

問題の根本は、pylintに/ usr / local / bin / pylint2および/ usr / local / bin / pylint3のエントリポイントコンソールスクリプトが付属している必要があることです。これはバグとみなされるべきです。

以下は機能しませ。まだpylint2を実行しています:

python3 -m pylint p3file.py

以下は私が正常に使用しているものです:

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

0

これは、サイモンの細かい答えに対応しています。私はそれを別の方法で考えただけで、python / pylintの複数のバージョンのソリューションを探している人たちに役立つと思いました。

3.x用のpylintのインストールと2.7のデフォルトまたはその逆の維持は、virtualenvを使用して簡単に実行できます。

仮想環境を作成します。実行中の環境で

    pip install pylint

ここで、あなたのenvがpythonとpylintをどこに置いているかを知ることができます

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

その後

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

それから、そのリンティングパスやPythonパスを使用するようにIDEを設定するだけです。Sublime3で動作することがわかっているので、以下の例で使用します。

Sublimeのトップヘッダーメニューで、[設定]> [パッケージ設定]> [Pylinter]> [設定-ユーザー]を選択します。

これは単なるjsonオブジェクトです。をセットする

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

ファイルを保存します。また、ファイルのコピーを作成し、そのvenvディレクトリに保存して、このリンターが必要なときにこの構成をコピーして貼り付けることで簡単に切り替えられるようにします。そうしないと、Pylinter.sublime-settingsをユーザーのデフォルトにリセットするだけで、それが私が見つけた最も簡単な方法のようです。申し訳ありませんが、Windowsコマンドがわからない場合は、Windowsコマンドをそこに配置することになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.