저는 파이썬이 내장 된 C++ 라이브러리를 개발 중입니다. 내가 뭘하고 싶은지 정적으로 파이썬 라이브러리를 연결하는 것입니다, 그래서 프로덕션 서버로 전환하면 구성 문제가되지 않습니다. 지금까지 나는 libpython3.5m.a
을 정적으로 링크 할 수있었습니다 (패키지 라이브러리가 -fPIC
플래그로 컴파일되지 않았기 때문에 소스에서 파이썬을 빌드해야했습니다). 그러나, 나는이 문제에 온, 그것은 보인다, 더 NumPy와이 없다 : 그,Python 라이브러리를 Numpy로 C (C++)에 정적으로 연결
ImportError: numpy.core.multiarray failed to import
그리고이 오류가 import_array1()
매크로에 의해 발생 : 내 라이브러리를 사용하는 응용 프로그램을 실행하면 오류가 날 프롬프트 (AFAIK)는 numpy 루틴을 C++로 임포트하는 데 사용됩니다. libnpymath.a
과 libnpysort.a
을 연결해 보았습니다. numpy 빌드 디렉토리에서 찾았지만 아무 소용이 없습니다. 정적 링크가 가능하고 어떻게 할 수 있는지 알고 있습니까? 나는 numpy가 C로 쓰여졌 기 때문에 가능해야한다고 생각한다.
질문의 첫 번째 부분은 왜 dll 파일을 사용하지 않습니까?! dll 파일을 호출하고 ctypes 모듈과 함께 함수를 사용할 수 있습니다 ... 또한 sys.path.append ('./ yourpath/yourpath') 함수를 사용하여 sys 모듈과 정적 링크를 수행 할 수 있습니다 다음 자신의 모듈을 가져올 ... – DRPK
@ DRPK 문제는 다른 라이브러리 (나는 리눅스에있어, 그래서 .dll보다는 오히려.) 나는 우분투 16에서 개발하고, 서버는 데비안 스트레치이며 libc.so (C++ 인 라이브러리)의 두 가지 버전이 있습니다. 하나만 컴파일하고 다른 하나는 사용할 수 없으므로 정적으로 링크하고 싶습니다. 그리고 파이썬도 마찬가지입니다. 나는 3.5, 3.4있다 ... –