- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Project
Project는 binary로 배포 된다.
$ pip install cx_freezefile projectproject: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped |
- binary 파일의 배포는 source code에 대한 '확인/수정'이 어렵기에 보안상 더 안전하다고 볼 수 있다.
- binary 파일은 2진 코드로 구성되어 시스템이 바로 읽을 수 있기에 더 빠르게 실행 된다.
다음은 project을 binary 파일로 만들기 위한 Makefile 이다.
SRCS = \ __init__.py \ a.py \ project.py \ b.py \ cache.pyifndef CFLAGSTARGET = $(SRCS:%.py=%.pyc)elseTARGET = $(SRCS:%.py=%.pyo)endiffreeze: cxfreeze $(CFLAGS) project.py |
- binary 파일을 만들때 연동되는 모든 library 파일들 또한 하나의 binary file에 전부 포함 된다.
$ cxfreeze project.py...m encodings.uu_codec /home/.7/encodings/uu_codec.pym encodings.zlib_codec /home/.7/encodings/zlib_codec.pym errno m exceptions m fcntl /home/oneit/anaconda2/lib/python2.7/lib-dynload/fcntl.som fnmatch /home/oneit/anaconda2/lib/python2.7/fnmatch.py...m multiprocessing.util /home/.7/multiprocessing/util.pym ntpath /home/.7/ntpath.pym numbers /home/.7/numbers.pym opcode /home/.7/opcode.pym operator /home/.7/lib-dynload/operator.so...m zipfile /home/.7/zipfile.pym zipimport m zlib /home/.7/lib-dynload/zlib.soMissing modules:? Carbon imported from plistlib? Carbon.File imported from plistlib? Carbon.Files imported from plistlib...This is not necessarily a problem - the modules may not be needed on this platform.copying /home/.7/site-packages/Crypto/Cipher/_AES.so -> /home/_AES.socopying /home/.7/site-packages/Crypto/Cipher/../../../../libpython2.7.so.1.0 -> /home/.7.so.1.0$ file dist/projectproject: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9ca6d38ee24250a0472a706b8bbe23d6614fe0ba, stripped |
binary 파일을 어떻게 실행시킬까? 데몬화해서 실행시키게 된다.
daemon --pidfile="/var/run/project.pid" --user ngp "/usr/local/cdnet/project" |
Trouble-shooting
import error
yum or pip
Dependant libraries from pip or yum path when making a binary.
yum 설치 위치
/usr/lib64/python2.6/site-packages
pip 설치 위치
/usr/lib/python2.6/site-packages
해당 위치에 확인 해 보면 "backports"로 시작하는 패키지가 pip설치 위치에만 있어야 하고.
yum설치 위치에서는 깨끗하게 지워져야 합니다. (pycrypto 패키지도 비슷한이슈가 발생할 수 있습니다.)
댓글
댓글 쓰기