문제를 해결하기 위해 갈 수있는 두 가지 방법이 있습니다.
- 고정, 또는 같은 정적 빌더를 사용
pyinstaller하거나py2exe
- 다음을 사용하여 컴파일
cython
첫 번째 방법은 크로스 플랫폼 및 버전이 아니며 다른 답변에서 설명했기 때문에 두 번째 방법을 사용하여 수행하는 방법을 설명합니다. 또한 pyinstaller와 같은 프로그램을 사용하면 일반적으로 파일 크기가 커지며 cython을 사용하면 KB 크기의 파일이 생성됩니다.
먼저 cython. 그런 다음, 파이썬 파일 (예를 들어 이름을 변경 test.py로) .pyx파일
sudo pip install cython
mv test.py test.pyx
그런 다음 cythonGCC와 함께 사용 하여 컴파일 할 수 있습니다 ( cythonPython .pyx파일에서 C 파일을 생성 한 다음 GCC가 C 파일을 컴파일합니다).
( https://stackoverflow.com/a/22040484/5714445 참조 )
cython test.pyx --embed
gcc -Os -I /usr/include/python3.5m -o test test.c -lpython3.5m -lpthread -lm -lutil -ldl
참고 : Python 버전에 따라 마지막 명령을 변경해야 할 수 있습니다. 사용중인 Python 버전을 확인하려면 다음을 사용하십시오.
$ python -V
이제 찾고있는 바이너리 파일 'test'가 있습니다.
참고할 기타 사항 :
- Cython은 정적 메모리 할당에 C-Type 변수 정의를 사용하여 Python 프로그램의 속도를 높이는 데 사용됩니다. 그러나 귀하의 경우에는 여전히 전통적인 Python 정의를 사용합니다.
- 추가 라이브러리 (예 :)를 사용하는 경우를 사용
opencv하여 디렉토리를 제공 -L한 다음 -lGCC 플래그에서 사용하는 라이브러리 이름을 지정해야 할 수 있습니다 . 이에 대한 자세한 내용은 GCC 플래그를 참조하십시오.