python에서 Qt module을 compile하여 import
Open source Qt module인 Hex decimal view/editor인 "QHexEdit2" 라는 module을
python에서 사용하려고 합니다.
PC및 SW환경 : Windows8.1(64bit), python3.5, Visual studio 2015, PyQt5.6.0 입니다.
QHexEdit2 github link =
https://github.com/Simsys/qhexedit2
현재 상태는 Windows8.1-64bit(Windows7-32bit도 시도했지만 동일현상) 환경에서
해당 module이 import되도록 시도했지만 아직까지 성공하지 못했구요.
최종 error상태는 첨부와 같이
"fatal error C1083: Cannot open include file: 'QMetaType': No such file or directory"
message가 출력되며 install이 안되는 상태입니다.
사실 여기에 질문하기 전 stackoverflow에 질문했습니다만, 엉터리 영작실력과
초보 python programmer의 한계로 제대로 질문 및 답변을 받지 못했습니다.
이에 대한 link는 아래와 같습니다.
http://stackoverflow.com/questions/37874244/qt-c-library-installation-to-python35
설명은 위와 같구요. 문의드리고자 하는 것은 python에서 Qt module을 compile하여 import할 때,
도움을 받았으면 하는 것이구요. 아니면 힌트라도 얻을 수 있을까 해서요.
QHexEdit2 module의 example이나 설명을 보면 linux 환경에서 실행한 것이라서
본인과 같은 windows 환경과는 상황이 다른 것 같습니다.
혹시 도움을 주실 수 있으실 분이 계시면 사례할 수 있구요.
국내라면 오프라인으로 직접 방문도 할 수 있으니,
시간/장소에 불편을 느끼시지 않으셔도 됩니다.
관심있으신 분은 연락 부탁드립니다.
email : actis.oh@gmail.com
첨부 | 파일 크기 |
---|---|
qhexedit2_python_setup.jpg | 84.09 KB |
"fatal error C1083: Cannot
"fatal error C1083: Cannot open include file: 'QMetaType': No such file or directory"
message
QMetaType의 C++ 라이브러리랑 헤더 파일 설치해보세요.
올려준 이미지 파일 내용 보니 파이썬 모듈 만들려고 C/C++ 소스 코드 빌드하다가 에러 내는군요.
이런 경우에는 모듈만드는 소스 코드가 쓰는 C/C++ 라이브러리 까지 설치해야 됩니다.
Devuan 1.0 (Debian without systemd)
amd64 station: AMD FX(tm)-6100 Six-Core Processor, 8 GB memory, 1 TB HDD
amd64 laptop: HP Touchsmart
글쇠판: 세벌 최종식, 콜맥 (Colemak)
답변글 감사합니다.
예, 그렇지 않아도 "Qt5.6.0"이 설치된 상태입니다.
QMetaType으로 검색을 해보면
"C:\Qt\Qt5.6.0\5.6\msvc2015_64\include\QtCore" 에 "QMetaType.h"와 include내용이 있는 확장자 없는
"QMetaType"의 두 file이 검색됩니다. Qt Creator에서 setting을 해줘야 할까요?
이것 때문인지 몰라서 Qt Creator설치를 QHexEdit2 setup 설치순서를 앞뒤로 진행해 봤지만
현상은 변하지 않네요. Qt program에서 설정하는 것이 따로 있을까요?
메세지를 보면 "sipAPIqhexedit.h" line13의 "#include "이 문제라는 것인데,
Qt compiler option을 어디에 어떻게 설정해야 하는지 난감하네요.
QMetaType 정의한 헤더파일 경로 찾아서 아래
QMetaType 정의한 헤더파일 경로 찾아서 아래 방식으로 지정해주면 될까요?
http://stackoverflow.com/questions/2752352/how-to-add-include-path-in-qt-creator#2752396
As explained in the Qt Creator Manual, must be an absolute path, but you can avoid OS-, host- or user-specific entries in your .pro file by using $$PWD which refers to the folder that contains your .pro file, e.g.
INCLUDEPATH += $$PWD/code/include
Devuan 1.0 (Debian without systemd)
amd64 station: AMD FX(tm)-6100 Six-Core Processor, 8 GB memory, 1 TB HDD
amd64 laptop: HP Touchsmart
글쇠판: 세벌 최종식, 콜맥 (Colemak)
답변 감사드립니다. 지쳐있던 차에 큰 용기를 주시는 군요.
답변글을 보고 힌트를 얻었습니다. "includepath" 라는 keyword로 찾아보니,
"QHexEdit2-master\setup.py"에 "line89: # Used Qt libs" 항목이 Qt include directory를
지정하는 항목이네요. 아래 이에대한 구문입니다.
여기서, "include_dirs" 변수가 이에 해당하는 것으로 판단됩니다.
여러가지 시도 중 입니다만, 혹시 아래와 같을 때 path 설정하는 방법은 어떻게 해야
할까요? 여러모로 감사합니다.
이 부분은 해결했습니다. 이젠 link문제로 넘어갔습니다.
아래 코드와 같이 필요 include 구문 4줄을 직접 추가했구요.
결과로 첨부와 같이 link error상태로 상황이 변한상태입니다.
이것도 path 문제인지 확실치 않아 lib path 2줄을 추가했지만,
해결은 안된 상태입니다.
비슷한 프로젝트가 하나 더 있네요.
https://github.com/vilkov/qhexedit2
하루지나서.
오늘 이것저것 떼다붙이며 컴파일해보니. 성공했네요.
윈도우용입니다.
Windows10 32bit VS2015 Qt5.7.0
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
답변 감사합니다. vilkov씨꺼는 이전것인 것 같아요.
github에 가보니 2012년 project네요.
본인이 문의드린 것은 "https://github.com/Simsys/qhexedit2" 2015년 project입니다.
좀 더 최신의 내용을 갖고 작업하는 것이 맞겠네요. 관심을 가져주셔서 감사합니다.
현상황을 설명하자면 C++ compile 자체가 문제된 것이 아니고, windows상 python에서
사용할 수 있도록 windows용 python library로 만드는 것이 안되고 있습니다.
github내용을 보면 linux에서는 python library로 만드는 것이 검증된 상태인 것 같아요.
DB Browser for SQLite 를 찾았습니다.
별도움이 될지는 모르지만. qhexedit 를 포함하고 있습니다.
mdb vs sqlite 속도차이가 이렇게 많이 나나요?
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=83&MAEULNo=28&no=8009
DB Browser for SQLite
https://github.com/sqlitebrowser/sqlitebrowser
컴파일용 폴더 경로는 이렇습니다.
c:\Qt\sqlitebrowser
c:\dev\SQLite
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
LIBPATH에 Qt5Core.lib 디렉토리 넣어
LIBPATH에 Qt5Core.lib 디렉토리 넣어 보세요. linker가 이 라이브러리 파일만 찾으면 빌드할 겁니다.
Devuan 1.0 (Debian without systemd)
amd64 station: AMD FX(tm)-6100 Six-Core Processor, 8 GB memory, 1 TB HDD
amd64 laptop: HP Touchsmart
글쇠판: 세벌 최종식, 콜맥 (Colemak)
예, visual studio 2015 property manager에서 수정했지만 해결은 안되네요.
첨부와 같이 visual studio 2015 property manager에서 additional library directory를 수정했지만
해결은 안되었습니다. 더불어 동 dialog에 있는 option switch를 Yes/No로 바꿔가며 test했지만,
결과는 동일하네요.
현재는 sip(v4.18, python에서 C++ source를 compile하여 python module로 만드는 tool)에서
link path를 관장하고 있는 것 같아서 여기를 파고 있습니다. 쉽지 않네요.
댓글 달기