command line 노트

pip으로 install했던 것들 리스트 출력해서 새 맥북 setup하기

Jonchann 2020. 4. 1. 00:25

내일부터 입사인데 코로나 덕분인지 때문인지 첫날부터 재택근무를 하게 되었다.

업무 및 개발에 필요한 맥북 프로를 회사가 친히 배송까지 해 주었기 때문에 또 setup을 해야 한다.

딱히 대단한 건 아니지만 나중에 또 setup할 나를 위해 써 두는 글이다.

 

먼저 Xcode이다.

Mac에서 혹은 IOS나 AppleTV에서 소프트웨어 개발을 하고 release를 하는데 필요한 툴이다.

에디터, 디버깅, 컴파일 등등을 수행한다고 한다.

자세한 내용은 잘 모르겠지만 Quora에 많으니 참고하면 된다.

 

https://www.quora.com/What-is-Xcode-and-why-do-I-need-it

 

What is Xcode and why do I need it?

Answer (1 of 6): On the off chance Matt Ackeret's answer is a little too high-level, let's see if I can do this all ELI5-like. (Probably not.) Xcode is an Integrated Development Environment, which means it pulls all the tools needed to produce an applicati

www.quora.com

https://www.quora.com/Do-I-need-Xcode-for-Python

 

Do I need Xcode for Python?

Answer (1 of 2): No. Python is an interpreted programming language and Xcode an development environment running under Apple's macOS system. To run Python code you need to have the Python interpreter installed - which you can get stand alone from http://www

www.quora.com

나는 딱히 맥북을 위한 소프트웨어를 개발하거나 그걸 AppStore에 올리거나 할 생각도 경험도 없지만 brewpython3나 뭐 그런 것들 깔고 pip install 사용하려면 Xcode를 깔아줘야 한다.

간단히 말해서 command line으로 뭐 많이 할거면 일단 깔아야 한다.

 

Xcode는 Appstore에서만 install할 수 있다.

 

처음에 맥북 사서 Apple ID 생성할 때 여간 튕긴게 아니라 짜증나서 일부러 Microsoft Outlook계정을 메일로 했었는데 로그인 할 때마다 쾌감을 느끼는거면 내가 변탠가.._?ㅎ

 

쨌든 얘는 시간이 왕창 걸리니 비밀의 숲이나 보고 와야겠다.

뭐 그 사이 본인이 갖고 있는 모든 라이브러리나 그런 것들 list up하고 싶으면 개인 맥북 iterms에다

pip freeze

를 입력하면 pip으로 install한 모든 것들이 이름==버전 형식으로 출력된다.

한 때는 conda로 install하기도 했는데(pip이 에러날 때 conda는 잘 되는 경우가 있음) oh my zsh!로 환경을 바꿔주면 하나도 안 먹히니 pip만 사용하는게 깔끔하다는 것을 알았다.

Xcode install이 끝나면 brew를 install한다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

python3을 install한다.

brew install python3

Anaconda3를 install한다.

Anaconda3는 일단 Anaconda에서 python3.7 이상을 위한 파일을 다운받아서 sudo로 install해야 하는데 command not found가 뜨니 permission을 755로 변경해야 한다.

sudo chmod 755 ./[file_name.sh]
sudo ./[file_name.sh]

Anaconda3를 설치해도(~/anaconda3이 생겨도) conda 커맨드를 쓰지 못할 수도 있다. 그럴 땐 아래 커맨드로 해결한다.

난 zsh를 사용하니까 zshrc에 추가하는거지만 bash를 쓰면 bashrc에 추가하면 된다.

$ echo "source ~/anaconda3/etc/profile.d/conda.sh" >> ~/.zshrc
$ source .zshrc

 

ipython, beautifulsoup, scipy, tqdm, nltk, numpy 등 유용한 많은 라이브러리들이 같이 설치된다.

이제 Anaconda3와 같이 깔리지 않는 여러 라이브러리들을 깔아준다.

나는 Anaconda3와 같이 깔리는 라이브러리들 외에 아래의 라이브러리들을 install 해 놓는다.

aku
allennlp
awscli
aws-xray-sdk
boto3
botocore
datashape
gensim
sklearn
spacy
tensorboard
torch
torchtext

그냥 pip install [library_name]을 사용하지는 않고 python3 -m pip install [library_name]을 사용해서 install을 진행한다.

자세한 이유는 모르겠지만 이게 에러가 덜 난다.

 

위에 적은 라이브러리 중에서 aku는 생소할텐데 당연하다.

우리 연구실 박사 선배가 만든거니까ㅋㅋㅋㅋ

https://github.com/speedcell4/aku

 

근데 써보면 진짜 편하다는 것을 알 수 있다(물론 아직 버그가 좀 있고 env를 내 맛대로 고쳐서 사용해야 하는 경우는 있다. 연구해야되서 바쁘니까 업글을 잘 못하는 것 같다. 그리고 아마 본인 실험 편하자고 한거라 그 이상 안하는 것일 수도 있다).

모델 구축해서 서버에서 실험 진행할 때 argparse를 사용하지 않고 aku에 resister만 하면(github 보면 설명 있음) 알아서 받아준다.

 

물론 실험 돌리는 모듈의 입력값의 데이터형을 알려줘야한다.

그래도 뭐 이건 익숙해지면 코드도 깔끔해지고 에러도 덜 나니 좋은 습관이다.
게다가 실험 다 돌리고 얻은 결과물을 알아서 정리해서 std와 함께 평균값까지 내준다.
이건 진짜 석사논문 쓰기 직전에 실험에 치일 때 완전 도움 됐다.

 

대신 아직 None 타입은 지정할 수 없고 이건 aku2 나오면 업글 하겠다고 했는데 aku2가 업글이 안된닼ㅋㅋㅋ

회사에서도 대학원 연구 때 같이 딥러닝 모델 구축해서 실험 막 돌리고 하는건 하지 않을 것 같아 별 사용은 안 할것 같지만 언젠가 쓸 때는 또 편리할테니까 일단 받아 놓을란다.