the python docs의 C++ 프로그램에서 파이썬 코드를 호출하는 방법을 배우고 있습니다.패키지를 가져와야하는 python 파일을 호출하는 방법은 무엇입니까?
multiply
예를 호출 할 때 모든 것이 잘 작동합니다. 나는 도서관을 가져 파이썬 소스 코드 한 줄을 추가하면 지금, 나는이 시스템 라이브러리를 가져 오는 경우
from openpyxl import load_workbook
내가 파이썬
생각ImportError: No module named openpyxl
에서 오류가 발생, openpyxl
말할 수, 어떤 문제도 발생하지 않지만 datetime
을 가져 오려고하면 오류가 발생합니다.
파이썬 콘솔에서 파일을 가져 오면 오류가 없습니다. openpyxl
라이브러리가 시스템에 설치되어 있습니다.
내 질문은 : 어떻게 패키지를 가져올 필요가 파이썬 소스 코드를 가져올 수 있습니까?
편집 : 좋아, 내가 뭔가를 언급하는 것을 잊어 버렸고, 나는 너희들에게 완전히 정직하지 못했다. 미안하다.
예제를 실행하려고하면 파이썬이 내 multiply.py
파일을 찾을 수 없으며 라인 PyImport_Import
은 항상 null
을 반환합니다.
내 해결책은 내 파이썬 소스가 PySys_SetPath
이라는 것을 알고있는 경로를 추가하는 것이 었습니다. 문제는 방금이 함수가 새로운 디렉토리를 추가하지 않는다는 것을 깨달았습니다. PYTHONPATH
을 덮어 씁니다. 이제 파이썬은 multiply.py
을 찾을 수 있습니다.
물론 그 줄을 삭제했지만 다른 질문이 있습니다. 파일이 C++ 컴파일 된 프로그램의 같은 디렉터리에있는 경우 왜 파이썬에서 내 원본을 찾을 수 없습니까? 첫 번째 목록 빈 문자열 ''
의 시작 부분에 있었다 :
나는 경로 내 임베디드 파이썬에서 보여에서 내 파이썬 콘솔에서 sys.path
조금 달랐다 내 것을 깨달았다. 나는 파이썬 전문가가 아니지만, 내 경로에 해당 라인을 추가 할 때 multiply.py
을 가져올 수 있었기 때문에 실행 파일에 상대적으로 위치한 모듈을 가져올 수없는 이유가이 빈 경로가 누락 된 것 같습니다. 그러나 그것은 여전히 그것이 무엇을 의미하는지 모른다.
내 파일을 찾기위한 경로를 추가하는 아이디어를 제공하는 @ paul-evans에게 감사드립니다.
시스템에 여러 버전의 Python이 설치되어 있습니까? – SethMMorton
파이썬 2.7, 파이썬 3, 파이썬 3.3이 있습니다. 'PyRun_SimpleString ("import sys \ nprint (sys.version)");' – camolin3
'PYTHONPATH' 변수는'site.py'에서만 읽혀지기 때문에 2.7 버전을 사용하고 있습니다. if 어떤 이유로 당신의 통역관이이 파일을 읽지 않고'PYTHONPATH'가 무시 될 것입니다. – SethMMorton