[python] PyDev“가져 오기에서 정의되지 않은 변수”오류를 어떻게 수정합니까?

Eclipse에서 PyDev를 사용하는 Python 프로젝트가 있고 PyDev는 내 코드에 계속 잘못된 오류를 생성합니다. 객체 settings를 정의 하는 모듈 이 settings있습니다. 나는 그것을 모듈로 가져오고 다음을 사용 b하여 속성을 할당합니다.

from settings import settings
settings.main = object()

내 코드 중 일부에서는 다음과 같은 문장이 있습니다.

from settings import settings
print settings.main 

… 코드가 문제없이 실행 되더라도 Eclipse 코드 오류 분할 창에서 “import : main에서 정의되지 않은 변수”메시지를 생성하십시오. 이 문제를 어떻게 해결할 수 있습니까?



답변

프로젝트의 코드의 경우 유일한 방법은 if False 실행되지 않도록 (정적 코드 분석은 런타임 정보가 아닌 보이는 정보 만 볼 수 있음) 해당 모듈을 직접 열면 main이 예상되었다는 표시가 없습니다).

이를 극복하기 위해 몇 가지 선택이 있습니다.

  1. 외부 모듈 인 경우 forced builtinsPyDev가 런타임 정보를 얻기 위해 쉘을 생성하도록 모듈을 추가 할 수 있습니다 (자세한 내용은 http://pydev.org/manual_101_interpreter.html 참조). 모듈을 쉘로 가져오고 모듈에서 찾은 클래스 dir(module)dir클래스를 수행하여 완료를 제시하고 코드를 분석하십시오.

  2. 오류가있는 줄에 Ctrl + 1 (Mac의 경우 Cmd + 1)을 사용할 수 있으며 PyDev는 해당 오류를 무시하기 위해 주석을 추가하는 옵션을 제공합니다.

  3. stub모듈 을 만들어 predefined완성에 추가 할 수 있습니다 ( http://pydev.org/manual_101_interpreter.html 에 자세한 내용이 있음).


답변

바이너리 등에 의존하는 opencv를 사용하고 있으므로 다른 모든 줄 에이 바보 같은 오류가있는 스크립트가 있습니다. 파이썬은 동적 인 언어이므로 그러한 경우를 오류로 간주해서는 안됩니다.

다음으로 이동하여 이러한 오류를 모두 제거했습니다.

창-> 환경 설정-> PyDev-> 편집기-> 코드 분석-> 정의되지 않음-> 가져 오기에서 정의되지 않은 변수-> 무시

그게 다야.

창-> 환경 설정-> PyDev-> 편집기-> 코드 분석-> 가져 오기-> 가져 오기를 찾을 수 없음-> 무시


답변

답변으로 표시된 게시물은 해결책이 아니라 해결 방법을 제공합니다.

이 솔루션은 저에게 효과적입니다.

  • 이동 Window - Preferences - PyDev - Interpreters - Python Interpreter
  • Forced builtins탭으로 이동
  • 클릭 New...
  • 모듈 이름을 입력하고 ( multiprocessing필자의 경우)OK

오류 메시지가 사라질뿐만 아니라 모듈 멤버도 인식됩니다.


답변

Eclipse / PyDev 프로젝트에서 비슷한 문제가 발생했습니다. 이 프로젝트에서 파이썬 코드의 루트 디렉토리는 프로젝트의 하위 디렉토리였습니다.

--> MyProject
 + --> src         Root of python code
   + --> module1     A module
   + --> module2     Another module
 + --> docs
 + --> test

프로젝트가 디버깅되거나 실행될 때 작업 디렉토리가 올바른 위치로 설정되어 모든 것이 정상이었습니다. 그러나 PyDev 코드 분석에서 module1 또는 module2에서 가져 오기를 찾지 못했습니다.

해결책은 프로젝트 속성-> PyDev-PYTHONPATH 섹션을 편집하고 소스 폴더 탭에서 / MyProject를 제거하고 대신 / MyProject / src를 추가하는 것입니다.


답변

이것은 나를 위해 일했다 :

1 단계) 인터프리터를 제거하고 자동으로 다시 구성

2 단계) 창-환경 설정-PyDev-통역사-Python 통역사 강제 내장 탭으로 이동 새로 만들기를 클릭하십시오 … 모듈의 이름 (제 경우에는 저주)을 입력하고 확인을 클릭하십시오

단계 3) 오류가 발생한 모듈에서 프로젝트 탐색기를 마우스 오른쪽 버튼으로 클릭하십시오. PyDev-> 코드 분석으로 이동하십시오.


답변

나는 같은 문제가 있었다. Windows에서 Python 및 Eclipse를 사용하고 있습니다. 코드는 정상적으로 실행되었지만 일식은 어디에서나 오류를 보여줍니다. 폴더 ‘Lib’의 이름을 ‘lib'(C : \ Python27 \ lib)로 변경 한 후 문제가 해결되었습니다. 글자의 대문자가 구성 파일의 대문자와 일치하지 않으면 문제가 발생할 수 있습니다 (그러나 항상 문제는 아닙니다. 오류 검사가 갑자기 나타나지 않았기 때문에 오랜 시간 동안 오류 검사가 좋았 기 때문에 이유).


답변

내가하고있는 것에 대한 근사치 :

import module.submodule

class MyClass:
    constant = submodule.constant

pylint가 말한 내용 :
E: 4,15: Undefined variable 'submodule' (undefined-variable)

가져 오기를 다음과 같이 변경하여이 문제를 해결했습니다.

from module.submodule import CONSTANT

class MyClass:
    constant = CONSTANT

참고 : 또한 가져온 변수로 이름을 변경하여 상수 특성을 반영하는 대문자 이름을 갖습니다.