2012-08-30 4 views
0

파이썬 모듈 질문이 있습니다 :파이썬 스크립트에 모듈 추가하기

다양한 하드웨어의 출력을 받아 데이터베이스에 저장하는 스크립트를 작성해야합니다. 현재 하드웨어에 대해서는 알고 있지만 앞으로 추가 될 추가 하드웨어에 대해서는 알지 못합니다. 미안해 좀 더 구체적으로 설명해 줘.

스크립트는 배전판에 연결된 하드웨어 모듈에서 전원 정보를 검색합니다. 이 모듈은 원시 센서 정보를 가져와 tcp/ip를 통해 사용할 수 있도록합니다. 필자는 하드웨어 모듈을 조사하고 정보를 수집하는 테스트 스크립트에 함수를 작성했습니다. 문제는 다른 하드웨어 모듈이 사용되는 곳에 배치해야한다는 것입니다. 모든 하드웨어 모듈은 동일한 정보를 사용할 수있게하지만 모두 다른 방식으로 수행합니다. 일부는 텔넷이나 ssh를 사용하고, 일부는 웹 페이지를 제공하고, 일부는 XML을 제공하고, 일부는 snmp를 사용합니다. 파이썬 모듈이 정보를 추출하여 표준 방식으로 스크립트에 제공함으로써 스크립트가 데이터베이스를 채울 수 있고 일상 생활이 계속되는 새로운 장치를 위해 작성 될 수있는 메커니즘을 만들고 싶습니다.

그래서 새 하드웨어 모듈 유형이 발견 될 때마다 스크립트에 새 기능을 추가 한 다음 'if'문 등에이를 래핑하는 대신 해당 기능을 모듈에서 수행 할 수있는 메커니즘이 있습니다 스크립트에 동적으로 추가됩니다. 내가 생각하기에 플러그인 유형 메커니즘이 떠오른다. 그러나 나는 그것이 꽤 맞는 것 같지 않습니다.

이와 비슷한 것을 사용하거나 구현 한 장소에 대한 제안이나 안내는 크게 감사하겠습니다.

+0

메인 코드를 변경하지 않고 다른 모듈을 사용 하시겠습니까? –

+0

나는 이해 했는가? 모든 운영 체제의 하드웨어 장치에 대한 정보를 얻는 일반적인 방법이 필요하십니까? –

+0

Rostyslav, 내가 그걸 어떻게 할 수 있는지 알려 주시면 좋을 것 같습니다. 그걸 팔아서 50 %를 줄 수 있습니다 :). 위의 마이클의 질문이 더 정확합니다. 표준 정보 집합을 반환하고 설치 디렉토리에 놓은 다음 데이터베이스의 항목을 사용하여이 유형의 하드웨어에 대해 다음 이름의 모듈을 말하는 추가 모듈을 작성할 수 있기를 원합니다. 사용할 수 있어야하며 표준 정보를 검색하도록 요청해야합니다. –

답변

0

코드에서 가져 오기 기능을 사용할 수 있습니다. 파이썬 버전에 따라 importlib (파이썬 2.7에 추가됨) 또는 __import__ 함수를 사용해보십시오.

지원하려는 각 하드웨어 장치에 대한 플러그인을 만들 수 있습니다. 각 플러그인은 어딘가에 (Windows 레지스트리의 환경 변수 또는 알려진 경로에있는 기본 모듈 경로에) 자신을 등록 할 수 있습니다. 그런 다음 코드가 해당 위치를 확인한 다음 (필요에 따라 시작시 주기적으로)로드 된 각 플러그인을로드합니다. distutils을 사용하고 egg 패키지로 포장 된 플러그인을 사용할 수도 있습니다.

Python 소스에서 실행될 때 매우 잘 작동하지만 PyInstaller 또는 Py2exe로 실행 파일을 빌드하려는 경우 더욱 복잡해집니다.

+0

우 블레, 고마워. 이것은 모두 리눅스 환경에 머 무르며 실행 파일은 필요하지 않습니다. 시작시 특정 위치에서 스크립트를보고 나중에 사용할 수 있도록 기존 모듈을 '등록'하는 것에 대한 생각이 마음에 듭니다. 고마워. –

관련 문제