Windows의 Wing IDE 내부에서 PyLint를 실행하고 있습니다. 프로젝트에 하위 디렉토리 (패키지)가 있고 패키지 내부에 최상위 레벨에서 모듈을 가져옵니다.
__init__.py
myapp.py
one.py
subdir\
__init__.py
two.py
내부 two.py
에는 import one
최상위 디렉토리 ( myapp.py
실행 디렉토리 )가 Python 경로에 있기 때문에 런타임에 올바르게 작동합니다 . 그러나 two.py에서 PyLint를 실행하면 오류가 발생합니다.
F0401: Unable to import 'one'
이 문제를 어떻게 해결합니까?
답변
내가 알고있는 두 가지 옵션이 있습니다.
하나, PYTHONPATH
모듈 위에 디렉토리를 포함 하도록 환경 변수를 변경하십시오 .
또는 ~/.pylintrc
다음과 같이 모듈 위에 디렉토리를 포함하도록 편집 하십시오.
[MASTER]
init-hook='import sys; sys.path.append("/path/to/root")'
(또는 다른 버전의 pylint에서 init-hook은 [General]을 [MASTER]로 변경해야합니다)
이 두 옵션 모두 작동해야합니다.
희망이 도움이됩니다.
답변
경로를 변경하는 솔루션 init-hook
은 좋지만 절대 경로를 추가해야한다는 사실을 싫어합니다. 결과적 으로이 pylintrc 파일을 프로젝트 개발자와 공유 할 수 없습니다. pylintrc 파일의 상대 경로를 사용하는이 솔루션은 나에게 더 효과적입니다.
[MASTER]
init-hook="from pylint.config import find_pylintrc; import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"
참고 pylint.config.PYLINTRC
또한 존재하고 같은 값을 가진다 find_pylintrc()
.
답변
1) sys.path는 목록입니다.
2) 문제는 때때로 sys.path가 virtualenv.path가 아니며 virtualenv 에서 pylint를 사용하려는 경우입니다
3) 따라서, init-hook을 사용하십시오 ( ‘및 “pylint 구문 분석은 엄격합니다)
[Master]
init-hook='sys.path = ["/path/myapps/bin/", "/path/to/myapps/lib/python3.3/site-packages/", ... many paths here])'
또는
[Master]
init-hook='sys.path = list(); sys.path.append("/path/to/foo")'
.. 및
pylint --rcfile /path/to/pylintrc /path/to/module.py
답변
venv에서 pylint 경로를 구성하면 문제를 해결할 수 있습니다. $ cat .vscode / settings.json
{
"python.pythonPath": "venv/bin/python",
"python.linting.pylintPath": "venv/bin/pylint"
}
답변
__init__.py
파이썬에게 dirs가 모듈이라는 것을 알리기 위해 두 디렉토리에 빈 파일이 있습니까?
폴더 내에서 실행하지 않을 때의 기본 개요는 (예를 들어 사용하지 않았지만 pylint ‘s에서) :
topdir\
__init__.py
functions_etc.py
subdir\
__init__.py
other_functions.py
이 그렇다면 pylint가 자신의 절대 경로에서 실행되고있는 현재 디렉토리를 참조하지 않고 모듈의 인식 통역 파이썬, 그것은 액세스 할 수 있습니다 방법입니다 functions_etc.py
같은 topdir.functions_etc
또는 topdir.subdir.other_functions
제공, topdir
온입니다 PYTHONPATH
.
업데이트 : 문제가 __init__.py
파일 이 아닌 경우 모듈을 복사하거나 이동하십시오. c:\Python26\Lib\site-packages
추가 패키지를 넣는 일반적인 장소이며 pythonpath에 있습니다. Windows 심볼릭 링크 또는 이와 동등한 기능을 수행하는 방법을 알고 있다면 대신 할 수 있습니다. http://docs.python.org/install/index.html 에는 개발 코드의 사용자 수준 디렉토리에 sys.path를 추가하는 옵션을 포함하여 더 많은 옵션이 있지만 실제로는 일반적으로 심볼릭 링크입니다. 내 로컬 개발 디렉토리를 사이트 패키지에 복사하는 것이 동일한 효과입니다.
답변
이 페이지에서 찾은이 질문에 대한 일반적인 답변 OPEN NOT NOT OPEN, SITE IS BUGED
작성 .pylintrc
및 추가
[MASTER]
init-hook="from pylint.config import find_pylintrc;
import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"
답변
WingIDE와 어떻게 작동하는지 모르겠지만 Geany와 함께 PyLint를 사용하려면 외부 명령을 다음과 같이 설정하십시오.
PYTHONPATH=${PYTHONPATH}:$(dirname %d) pylint --output-format=parseable --reports=n "%f"
여기서 % f는 파일 이름이고 % d는 경로입니다. 누군가에게 유용 할 수 있습니다 🙂