Fabric for Python3 (Fabric3)

Python3에서 Fabric을 설치해 사용하려하면

스크린샷 2016-07-16 23.10.37.png

이와 같이

<span class="s1">ImportError: cannot import name 'isMappingType'</span>

라는 임포트 에러를 마주치게 된다.

이렇게 되는 이유는 python2에서 지원하던 isMappingType 모듈이 python3에서는 제거되었기 때문이고, fabric모듈을 제작하는 FabFile(http://www.fabfile.org)에서는 현재 python2.7까지만 지원하기 때문이다.스크린샷 2016-07-16 23.13.55.png

따라서 python3 환경에서는 fabric을 사용할 수 없게 되는데, 이러한 경우가 많아서 해외 python이용자가 기존 프로젝트를 포크해 python3(3.4+)으로 만든 것이 있다.

스크린샷 2016-07-16 23.15.38.png

바로 Fabric3이라는 이름으로 Pypi에서 제공중인 모듈이라 설치도 간단히,


pip3 install fabric3

위 명령만으로 설치할 수 있다. 기존에 fabric을 설치했다면


pip3 uninstall fabric
deactivate (virtualenv / pyvenv 등의 가상환경을 이용해 작업중이던 경우, 필수!)
source 가상환경/bin/activate (가상환경 활성화)
pip3 install fabric

(만약 python3버전의 가상환경을 사용중이었다면 pip3대신 pip로 사용해도 무방하다)

가상환경을 이용중일 경우 비활성화 후 다시 활성화 하지 않고 그대로 이용할 경우 메모리에 올라가 있는 python실행 상태로 인하여 여전히 에러가 날 수 있다. 따라서 반드시 비활성화 후 다시 활성화 하기를 권장한다.

위 과정을 마친 경우 fabric을 사용하듯이 자연스럽게 fabric을 이용할수 있다!

Windows에서 pip로 mysqlclient 설치 실패시(python3.4/3.5)

윈도우 python3(3.4/3.5)에서 pip로 mysqlclient를 설치하려 시도시 아래와 같은 에러를 만날 수 있다.

pip install mysqlclient with error

에러 내용은 MS VS C++ 10.0(py3.4) / MS VS C++ 14.0(py3.5)를 설치해달라는 내용이다.

하지만 VS C++은 설치하는데 용량도 꽤 크고 설치시간도 오래걸려서 부담이 크다. 그리고 설령 설치를 하더라도 깔끔하게 맵핑이 되지 않는 경우도 많다.

그래서 차선책으로 mingw를 사용해 gcc컴파일러를 설치해 사용하는 경우도 있지만, 시스템에 설치된 python의 설정을 변경해줘야하기 때문에 라이트유저에게는 부담이 된다.

다행히 mysqlclient의 경우에는 win32/64, py3.4/3.5용으로 미리 컴파일된 pip용 whl파일을 제공한다.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

위 링크에서 윈도우에 설치한 python버전(3.4인지, 3.5인지 / 32비트인지, 64비트인지)을 확인후 whl파일을 받는다.

다운받은 후 whl 파일이 있는 곳에서

pip install [다운받은파일이름]

(아래에서는 mysqlclient-1.3.7-cp34-none-win32.whl) 을 입력하면 말끔하게 설치됨을 알 수 있다.

pip install mysqlclient

pip로 mysqlclient설치 중 mac os x에서 egg_info / OSError 발생시 대처방법

스크린샷 2016-05-27 오후 6.19.59

(venv) Beomiui-MacBook:Downloads beomi$ pip install mysqlclient-1.3.7.tar.gz
 Processing ./mysqlclient-1.3.7.tar.gz
 Complete output from command python setup.py egg_info:
 /bin/sh: mysql_config: command not found
 Traceback (most recent call last):
 File "", line 20, in
 File "/var/folders/52/v_mf5ys167q67b6cn_hnfzg00000gn/T/pip-0zi6xkoz-build/setup.py", line 17, in
 metadata, options = get_config()
 File "/private/var/folders/52/v_mf5ys167q67b6cn_hnfzg00000gn/T/pip-0zi6xkoz-build/setup_posix.py", line 44, in get_config
 libs = mysql_config("libs_r")
 File "/private/var/folders/52/v_mf5ys167q67b6cn_hnfzg00000gn/T/pip-0zi6xkoz-build/setup_posix.py", line 26, in mysql_config
 raise EnvironmentError("%s not found" % (mysql_config.path,))
 OSError: mysql_config not found

----------------------------------------
 Command "python setup.py egg_info" failed with error code 1 in /var/folders/52/v_mf5ys167q67b6cn_hnfzg00000gn/T/pip-0zi6xkoz-build
 You are using pip version 7.1.2, however version 8.1.2 is available.
 You should consider upgrading via the 'pip install --upgrade pip' command.


(venv) Beomiui-MacBook:Downloads beomi$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.12.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.7.12.el_capitan.bottle.tar.gz
==> /usr/local/Cellar/mysql/5.7.12/bin/mysqld –initialize-insecure –user=beomi –basedir=/usr/local/Cellar/mysql/5.7.12 –datadir=/usr/local/var/mysql –tmpdir=/tmp
==> Caveats
We’ve installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don’t want/need a background service you can just run:
mysql.server start
==> Summary
🍺 /usr/local/Cellar/mysql/5.7.12: 13,281 files, 444.8M

(venv) Beomiui-MacBook:Downloads beomi$ pip install mysqlclient-1.3.7.tar.gz
Processing ./mysqlclient-1.3.7.tar.gz
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient
Successfully installed mysqlclient-1.3.7
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

이와 같이

brew install mysql

을 진행하면 된다.

맥에서 윈도RDP로 접속시 한영전환하기.

맥에서 앱스토어에서 받은 윈도 RDP를 통해 원격 윈도 서버로 접속시, 본인의 경우 구름입력기의 조합으로 한영 전환을 Shift + Space로 하고 있다.

이때, 원격 접속된 컴퓨터로 연결을 해도 문자 입력시 문자가 들어가는게 아니라 입력값이 들어가는 방식이기에 원격 서버의 OS가 입력을 받아 처리하게 된다. 즉, 맥북에서는 a라고 쳐도 윈도(서버)에서는 한글입력중이어서 ㅁ이라 받아들일 수 있다는 것이다.

이런 경우 해결책은 아주 간단하다.

스크린샷 2016-05-28 오전 12.29.21

위 스크린샷과 같이 한국어 입력기로 전환해 두면, 맥북 키보드의 우측 ALT(option) Key가 윈도의 한/영키로 작용한다!

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×