문제를 해결하기 위해 갈 수있는 두 가지 방법이 있습니다.
- 고정, 또는 같은 정적 빌더를 사용
pyinstaller
하거나py2exe
- 다음을 사용하여 컴파일
cython
첫 번째 방법은 크로스 플랫폼 및 버전이 아니며 다른 답변에서 설명했기 때문에 두 번째 방법을 사용하여 수행하는 방법을 설명합니다. 또한 pyinstaller와 같은 프로그램을 사용하면 일반적으로 파일 크기가 커지며 cython을 사용하면 KB 크기의 파일이 생성됩니다.
먼저 cython
. 그런 다음, 파이썬 파일 (예를 들어 이름을 변경 test.py
로) .pyx
파일
sudo pip install cython
mv test.py test.pyx
그런 다음 cython
GCC와 함께 사용 하여 컴파일 할 수 있습니다 ( cython
Python .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
한 다음 -l
GCC 플래그에서 사용하는 라이브러리 이름을 지정해야 할 수 있습니다 . 이에 대한 자세한 내용은 GCC 플래그를 참조하십시오.