태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

달력

06

« 2017/06 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  

지금은 alembic 을 포터블하게 사용하기 위해서 WinPython(3.5.2.3 Zero 버전)을 사용하고 있는데, pip 를 이용해서 alembic 을 설치한 상태로 압축해서 다른 PC에 가져가면 "failed to create process" 라는 에러를 내면서 alembic 실행이 실패하는 문제가 있었다.

이 상태에서도 기본 포함된 python 인터프리터를 실행하는 데에는 문제가 없었기 때문에 pip 로 추가설치한 패키지가 문제인 것 같았다.

혹시 몰라서 내 PC에서 pip로 alembic 설치할 때의 WinPython 위치(예를들면 D:\Tools\WinPython)와 동일한 경로에다가 옮겼더니 다른 PC에서도 그제야 실행이 된다. 

역시 pip 로 추가 설치한 패키지는 설치할 때 전체 경로가 고정되어서 들어가는 부분이 있는 것 같다. 일단은 C:\WinPython 처럼 WinPYthon을 C 드라이브의 경로에 두고 alembic 을 설치한 뒤 이걸 복사해서 다른 곳에서도 사용하는 방식으로 사용하는 선에서 마무리 하는게 좋겠다.

WinPython 설치 파일 자체에 원래부터 포함되어 있던 파이썬 패키지들은 괜찮은 것 같은데, 아예 alembic 을 포함하는 커스텀 WinPython 설치 파일을 만들 수 있으면 좀 더 편리할 것 같다.

신고
Posted by wafe

댓글을 달아 주세요

파이썬용 DB 마이그레이션 라이브러리인 alembic ( Outsider’s Dev Story alembic tag )을 사용해서 MySQL DB를 관리해보려는 생각으로, 일단 테스트를 해보려고 하니 WinPython Zero Version 에는 MySQL 클라이언트가 설치되어 있지 않다. 그래서 실행하면 mysqldb가 없다고 에러가 난다.

내가 사용한 것은 WinPython 3.5.2.3 64비트 Zero 버전인데, 여기 포함된 CPython 버전은 3.5대이다. 구글링해보니 파이썬 3부터는 mysqlclient를 설치하면 mysqldb 호환이 된다고 한다.

pip install mysqlclient 해서 설치하면 일단 빌드가 필요하다고 나온다 흐아. 얼마전 글에서 WinPython의 빌드 설정을 msvc로 바꿨기 때문에 Visual C++ Build Tools 설치가 필요하다는 메시지가 나온다. 나는 이미 VS 2015가 있기 때문에 VS 2015 설치에서 C++ 관련 항목을 설치해줬다.

그러고 나서 다시 인스톨을 시도하니 아래와 같은 빌드 오류가 난다.

_mysql.c(29): fatal error C1083: Cannot open include file: 'my_config.h': No such file or directory

오류 메시지보다 조금 위의 cl.exe 실행 메시지를 보니, MySQL include 경로 설정이 아래처럼 되어 있는데, 실제로 내 PC에 설치된 MySQL C Connector 와는 버전이 다른 것을 찾고 있다.

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include"

구글링을 약간 해서 pip로 설치할 때 커스텀하게 빌드 옵션을 지정할 수 있는 것을 발견하고 아래처럼 실행했다.

> pip install mysqlclient --global-option=build_ext --global-option="-IC:\Program Files\MySQL\MySQL Connector C 6.1.3\include"

이번에는 아까와 다른 빌드 오류가 난다.

C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\stdio.h(1927): fatal error C1189: #error:  Macro definition of snprintf conflicts with Standard Library function declaration

으… 오랜만에 예~~전에 리눅스에 뭐 하나 설치하려면 소스 받아서 make all make install 해야 하는데, 빌드오류 하나하나 잡아가면서 몇 시간씩 걸려 설치하던 악몽이 떠오른다.

Windows 사용하면서 무슨 빌드냐! 분명 바이너리 패키지가 있을거야! 하며 구글링에 돌입, 역시 세상을 아름답게 만들어 주는 분들이 있다.

Unofficial Windows Binaries for Python Extension Packages에서 각종 패키지의 whl 파일을 받을 수 있다. (말이 unofficial 이지… 윈도 사용자에게는 거의 오피셜?!)

사용하는 CPython 버전과 32/64비트 버전에 맞게 whl 파일을 받아서 설치한다.

> pip install d:\downloads\mysqlclient-1.3.8-cp35-cp35m-win_amd64.whl

Processing d:\downloads\mysqlclient-1.3.8-cp35-cp35m-win_amd64.whl
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.3.8

설치 완료! 해피~!

신고
Posted by wafe

댓글을 달아 주세요

2016.11.17 21:28

Portable python - WinPython 분류없음2016.11.17 21:28

파이썬을 포터블하게 사용할 수 있는 방법을 찾다가 발견한 것이 WinPython 이다. (왜 전에는 몰랐지?)

WinPython 은 여러가지 패키지가 있는데, 파이썬 기반으로 유틸리티를 만들어서 간단히 복사해서 갖다놓기만 하면 실행이 가능한 형태로 쓰면서도 만들기도 편하게 하려는 것이 목표이므로, 가장 작은 Zero Version(WinPython 3.5.2.3Zero 등 끝에 Zero 가 붙은 판)을 사용하면 적당하다.

다운로드는 EXE인데, 뭘 설치해 준다기 보다는 지정한 경로에 압축만 풀어주는 정도다. 포함된 WinPython Control Panel.exe 를 사용하면 python.org 에서 배포하는 정식 인스톨러처럼 시스템에 등록도 해주는 기능이나 패키지 설치해주는 기능도 있다는데, Zero 버전(내가 쓴 것은 3.5.2.3Zero다)에서는 UI관련 패키지가 빠져있어서인지 아예 실행도 안된다. 그냥 개발 환경에서 여러 버전을 깔아서 편하게 쓰고 싶은거라면 약 200MB 짜리 풀 버전을 받는게 속 편하다.

압축 풀린 상태 그대로 있는 패키지만 가지고 사용하는 데에는 전혀 무리가 없다. 설치 폴더의 WinPython Command Prompt.exeWinPython Interpreter.exe 를 실행시키면 된다. .py 스크립트 파일을 실행시키고 싶으면 scripts 폴더의 python.bat 를 이용해서 python.exe 사용하듯이 실행시키면 필요한 환경변수들을 다 세팅해서 잘 돌아간다.

Zero 버전이므로 추가 패키지를 설치해야 되는데 pip 를 사용하면 된다고 하지만 실제로는 pip install 로 뭔가 설치해보면 cygwin builder 어쩌고 하는 곳에서 TypeError: unorderable types: NoneType() < str() 라는 오류가 나면서 설치가 안된다.

정식 해결방법인지는 잘 모르겠는데, settings\pydistutils.cfg 파일을 열어서 mingw 로 되어 있는 부분을 msvc로 변경하면 문제없이 잘 설치된다.


신고
Posted by wafe

댓글을 달아 주세요

2008.04.15 18:47

PIL로 이미지 DPI 바꾸기 분류없음2008.04.15 18:47

포토샵에서 이미지 DPI를 무조건 72 DPI로 바꾸는 황당한 버그덕분에 PIL도 써본다.

http://mail.python.org/pipermail/python-list/2006-September/403994.html

쓸데없는 걸로 싸우는 거 같이 보이는 메일 쓰레드인데 아무튼 질문자도 원하던 결과를 얻었고 덕분에 나도 좋으니 이 어찌 아니 좋을쏘냐.

결론적으로 DPI는 그냥 이미지에 태그처럼 붙어있는 메타 정보일 뿐인 것 같다.
신고
Posted by wafe

댓글을 달아 주세요