필자는 Pylint (이 글을 쓰는 시점에서 1.0.0) 의 최신 릴리스가 Python 3을 지원하지만 Python 3.3이있는 64 비트 Ubuntu 13.04에서 작동하도록 할 수 없다는 것을 이해합니다.
PyPi 사이트 의 설치 지침을 따르고 Pylint 1.0.0이 성공적으로 설치 된 것 같고 ( pylint --version
pyintint 1.0.0을 반환 함) Python 2.7 코드와 함께 작동하지만 로컬이 아닌 문장 등을 볼 때 구문 오류를보고합니다.
무엇을 제공합니까? Ubuntu에 Pylint에 대한 특별한 설치 지침이 있습니까?
답변
파이썬 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')()
)
답변
허용 된 답변에 대한 @sayth의 의견은 여기에 끌린 것입니다. 파이썬 2와 파이썬 3 스크립트를 모두 작성하고 올바른 규칙 세트와 비교하여 확인하고 싶습니다. pylint를 사용하여 설치 하면 python3 인터프리터를 호출 pip3 install pylint
하는 짧은 스크립트를 작성 /usr/local/bin
하므로 검사 할 모든 파일이 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의 “빌드 명령”메뉴에서 직접 pylint를 사용하고 python 2 및 python 3 스크립트에 대해 다른 명령을 지정할 수 없으므로 다음과 같은 사항도 있습니다
~/bin/pylint
.
#!/bin/bash
if [[ $(head -n 1 "${@: -1}") == *python3* ]]
then
# python3 file
pylint3 "$@"
else
pylint2 "$@"
fi
shebang을 스니핑하여 올바른 버전을 전달합니다.
완벽하지는 않지만 기능적이며 다른 사람들에게 유용 할 수 있습니다.
답변
Pylint 생태계는 이후 (이 질문이 제기 된 후) 변경되었으며 이제 python3에 대해 별도의 pylint가 있습니다. 다음과 같이 설치할 수 있습니다.
sudo apt install pylint3
우분투 16.04.2 LTS에서 나를 위해 일했습니다.
답변
Python 2와 3에서 pylint를 실행하는 또 다른 방법으로 Python의 -m
스위치를 사용 하여 현재 버전의 Python에서 시스템에 설치된 모듈을 실행할 수 있습니다.
$ python2 -m pylint
$ python3 -m pylint
원하는 것을 명시 적으로 선택합니다. 원하는 경우이를 별명 또는 쉘 스크립트로 만들 수 있습니다.
답변
문제의 근본은 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
답변
이것은 simons fine answer에 대한 답변입니다. 방금 다른 방식으로 생각하고 여러 버전의 Python / pylint에 대한 솔루션을 찾는 사람들에게 유용 할 수 있다고 생각했습니다.
virtualenv를 사용하면 3.x 용 pylint를 설치하고 2.7을 기본값으로 유지하거나 그 반대로 유지하는 것이 쉽습니다.
가상 환경을 만듭니다. 활성화 된 동안 환경에서
pip install pylint
여기서 당신의 환경이 파이썬과 pylint를 어디에 넣었는지 알아낼 수 있습니다.
which pylint
#/home/$USER/Desktop/python/awesomeSauce/bin/pylint
그리고
which python
#/home/$USER/Desktop/python/awesomeSauce/bin/python
그런 다음 린트 경로 및 / 또는 파이썬 경로를 사용하도록 아이디어를 설정하는 것입니다. 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 명령을 모르거나 거기에 넣었을 것입니다.