pyenv, pyinstaller 실행파일 만들 때 문제 Develop Tip

데비안에서 pyenv 를 잘 동작시켰습니다.

그리고 다음과 같이,

$ pyenv install 3.7.3
$ pyenv virtualenv 3.7.3 py3
$ pyenv activate py3

환경을 py3으로 갖춘 다음, pyinstaller 를 pip로 설치하고
하나의 실행파일로 만들려고 하는데...


위와 같이,

OSError: Python library not found: libpython3.7m.so, libpython3.7m.so.1.0, libpython3.7.so.1.0, libpython3.7mu.so.1.0
    This would mean your Python installation doesn't come with proper library files.
    This usually happens by missing development package, or unsuitable build parameters of Python installation.

    * On Debian/Ubuntu, you would need to install Python development packages
      * apt-get install python3-dev
      * apt-get install python-dev
    * If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)

와 같은 오류가 발생하는 것이었습니다..

약간 헤메었는데 결론은 마지막에 있는 것처럼 CPython을 build 할 때, --enable-shared 또는 Mac 에서는 --enable-framework 옵션을 주면 된다는 것이었는데요,

다음과 같이, 해당 인터프린터를 pyenv에서 작업을 했습니다.

잠깐! 그 이전에 pyenv를 이용하여 install 을 하려면 실제 CPython을 build 하려는 모든 
개발 환경이 갖춰줘야 하는데, 다음 페이지에 잘 기술되어 있습니다.

우분투나 데비안 계열인 경우, 다음과 같이 환경을 만듧니다.

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git

그러면 아래와 같이 진행합니다.

$ pyenv uninstall py3
$ pyenv uninstall 3.7.3

로 이전 설치한 것을 헤지하고,

$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.6 

와 같이 설치한 후,

$ pyenv virtualenv 3.7.3 py3
$ pyenv activate py3

라고 다시 만들어,
py3 환경에서 pyinstaller 모듈을 pip로 설치하고는,
모두 잘 해결되었습니다.


어느 분께는 도움이 되셨기를 ..


핑백

덧글

댓글 입력 영역

구글애드텍스트