반응형

먼저 내가 사용하는 jupyter 에 어떤 커널들을 사용할 수 있는지 확인한다.

>> jupyter kernelspec list

 

나는 위의 그림을 보니

python3, python2 를 사용할 수 있다.

 

 

이제 루비를 추가해보겠다.

 

mac os 의 경우 homebrew를 통해서 zeromq를 설치해준다.

>> brew install zeromq --universal

그러면 -- 다음이 옵션을 넣어주는 건데,

--universal 옵션이라는 것은 없다고 나온다.

아마 예전엔 있었는데 지금은 빠졌나보다.

 

universal 이라는 옵션 없음

 

 

pyenv를 설치해준다.

>> brew install pyenv

 

그 후에 아래 3줄을 터미널에 입력해주어 환경변수를 세팅해준다.

 

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

 

나는 아래의 명령어도 필요할 수도 있다고 추가해달라고 콘솔창에 나와있었다.

echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"

export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

 

 

아래 명령어를 입력하여 파이썬 3.4 버전을 설치한다. (기존에 파이썬 3점대 버전이 있으면 안하셔도 무방할 듯 싶습니다)

 

>> pyenv install 3.4.3

>> pyenv global 3.4.3

jsonschema 설치(파이썬3 부터는 jsonschema 라는 것도 필요하다고 합니다.) -- 파이썬 이미 있으면 안해도 될 듯 합니다.

>> pip install jinja2 tornado pyzmq jsonschema  

>> pip install ipython

 

 

## 중요 ##

 

이제부터 iruby를 설치해줍니다.

iruby 란 주피터 노트북에서 사용할 수 있는 ruby 언어를 의미합니다.

ex)

기존의 파이썬: python

주피터 상의 파이썬: ipython 이라고 부르듯.

 

iruby는 gem 이라는 시스템으로 설치가 가능합니다.

 

먼저 specific_install 이라는 패키지를 설치하고,

>> sudo gem insrtall specific_install

 

specific_install 라는 패키지를 사용해서 github에 올려져있는 iruby를 설치받습니다.

>> sudo gem specific_install -l https://github.com/SciRuby/iruby -b master

여기서 sudo 란 관리자 권한으로 설치한다는 것을 의미합니다.

자! 이제 터미널에

>> iruby --version

이라고 입력하시면, 버전정보가 나온다면, 정상적으로 설치가 되었습니다.

 

이제 설치된 iruby를 jupyter notebook 에서 사용하기 위해 커널을 등록해보겠습니다.

커널은 코딩을 할 수 있는 하나의 공간이라고 생각하시면 무방합니다.

jupyter notebook이라는 스케치북에 iruby라는 언어를 이해할 수 있는 공간이 존재해야 iruby 코드를 작성하고 

한줄 한줄 실행할 수 있는 것이지요

 

iruby 커널 등록

>> iruby register

 

드디어 등록이 완료되었습니다!! 오예~~~

 

 

이제 제대로 등록이 되었는지 커널들의 리스트를 출력해볼까요??\

>> jupyter kernelspec list

 

 

ruby라 정상적으로 나오네요.

이제 jupyter notebook을 실행해서, ruby코드를 작성하고 컴파일하실 수 있습니다.

 

>> jupyter notebook

 

 

 

감사합니다~~~ㅎㅎㅎ

 

 

반응형
반응형

기존의 아나콘다 설치 후 파이썬을 실행하시면

 

아래와 같이 Python3 점대 버전만 사용가능하실겁니다.

 

 

주피터 환경에서 Python 2점대 버전도 설치를 해주기 위해,

 

기존의 anaconda 환경으로 파이썬을 설치하였다면,

 

Anaconda Prompt에 들어가셔서 아래의 명령어대로 수행하시면 

 

주피터 환경에서 Python 다중 커널을 사용하실 수 있습니다.(mac 환경에서는 Anaconda Prompt 대신 그냥 terminal 을 키셔도 무방합니다. ^^ )

 

먼저 아래 명령어를 사용하여

jupyter kernelspec에서 어떤 커널들이 가능한지(어떤 언어로 작업을 할 수 있는지) 확인을 해줍니다.

>> jupyter kernelspec list

 

 

먼저 anaconda 시스템을 업데이트를 해줍니다.

내 pc에 깔려있는 anaconda를 최신버전으로 만드는 작업.

>> conda update conda

 

그 다음 파이썬 커널을 만들어 주는 작업입니다.

파이썬 2.7 버전을 설치해주는 작업입니다.

>> conda create -n py27 python=2.7 anaconda

 

커널 설치가 완료되었으면,

 

아래 명령어를 입력하여

파이썬 2.7 버전을 활성화시켜줍니다.

>> conda activate py27

 

다음 라인의 맨 앞에 (py27)이라고 나오게 되었죠??

 

파이썬 2.7 버전이 활성화 된 것입니다.

 

아래는 활성화와 비활성화에 대한 사용명령어 코드입니다.

 

 

비활성화를 하시려면,

>> conda deactivate

라고 입력하시면 되겠죠??

 

conda deactivate 라고 입력하신 후에

 

다시 jupyter notebook 을 실행시키시면,

 

아까는 보이지 않았던 python2 가 생성된 것을 보실 수 있습니다.

 

 

이로써 jupyter notebook 에서도 python2 를 사용하실 수 있게 됬네요~~ㅎㅎ

 

감사합니다.

 

 

 

 

반응형

'IT' 카테고리의 다른 글

Ubuntu에 Hadoop 설치  (1) 2020.04.21
jupyter notebook 에서 루비 커널 추가하기  (0) 2020.04.21
MacBook 파이썬 설치하기  (0) 2020.04.21
Python2 vs Python3  (0) 2020.04.21
os, readonly 파일 수정방법(feat, sudoers 수정)  (0) 2020.04.20
반응형

1. 맥북에는 이미 파이썬이 설치되어 있습니다.

 

command + space 키를 눌러 검색창을 활성화시킨 뒤,

terminal이나 iterm을 켜서

 

>> python -V

 

명령어를 실행시킵니다.

 

아마 파이썬 2점대 버전이 설치되어 있지 않을가 싶네요.

출력값: Python 2.x.x

 

그러나 2점대와 3점대는 코드상에 차이가 있기 때문에 파이썬3를 설치해본다.

Python2 vs Python3 관련 포스팅 참고:  https://datacodingschool.tistory.com/26

 

Python2 vs Python3

Python2점대와 3점대가 차이가 생기는 이유: 두 버전간의 backward compatibility를 지원하지 않는 부분이 많다는 것이다. 1. xrange vs range 파이썬 2에서는 xrange를 지원하지만, 파이썬 3에서는 xrange는 아니..

datacodingschool.tistory.com

 

 

파이썬 3점대 설치

 

1. 공홈(공식홈페이지)에 들어가서 설치

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

파이썬 홈페이지에서 알아서 추천해주기 때문에 노란색 버튼(최신버전) 클릭!

 

설치 후 다운받은 pkg 파일을 실행

 

 

"계속" 버튼 클릭

 

 

"동의" 버튼 클릭

 

 

mac 계정 암호 입력하며 설치 진행

 

 

 

설치 진행 중

 

설치 완료!!

 

 

 

이제 Command + Space 를 눌러서  "Terminal" 를 입력하고,

>> Python -V

명령어를 입력하면, 그대로 2점대 버전이 나오게 된다.

 

 

 

### 이제 중요 ###

 

터미널 환경에서 환경 변수라는 것을 설정해주어야 한다. (몬가 개발자 같지?)

 

터미널에서 윈도우의 워드나, 한글처럼 파일을 수정해줄 수 있는 에디터가 존재!!

 

그 이름은 바로!!! >> vim 이다.

 

vi 라는 명령어로 파일을 수정할 수 있다.

 

 

>> vi ~/.bash_profile

 

입력한다.

 

1. vi : vim 에디터로 bash_profile을 수정할 거니까, 열어달라는 명령어이다.

2. .bash_profile: bash_profile은 리눅스(or 유닉스)의 중요한 설정을 하는 파일이니, 숨김파일로 존재한다. "." 이라는 점 의 의미가 숨김파일이라는 것이다.

3. ~/: 가장 기본 위치를 의미한다. 예를들어 ex) younghun.joo/home/Desktop/python 이런 폴더들 안에 .bash_profile이 있다면,

>> vi younghun.joo/home/Desktop/python/.bash_profile이라고 해주어야 했을 것이다.

 

vi 에디터로 .bash_profile을 열어서 아래부분을 추가해준다.

 

 

 

vi 에디터로 사용법:

 

원하는 위치에 가서

1. 소문자 'a' 를 누르면 그때부터 수정이 가능하다.

 

수정을 다 한 후에

2. 'esc' 키를 누른 후에 ':' 키를 누르고 저장(write)하고 종료(quit)을 의미하는 'wq' 키를 누르고 Enter!

 

 

그러나 

>> python -V 

를 입력하면 바뀌지 않았을 수도 있다.

 

.bash_profile은 환경설정 파일이기 때문에 컴퓨터가 한번 꺼졌다가 켜지면 그때 반영이 될 수도 있기 때문이다.

아래 명령을 실행하여 반영을 강제적으로 해준다.

 

>> source ~/.bash_profile

명령어를 입력 후,

>> python -V

3점대로 수정된 파이썬을 확인한다.

 

 

 

앞으로는 파이썬 3점대 버전으로

>> python

명령어를 통해 간단한 작업을 터미널 창에서 실행할 수있다.

 

 

## 중요 ##

PIP 설치하기!!

 

파이썬의 다양한 패키지(누가 만들어놓은 것)을 쉽게 다운받을 수 있도록 관리해주는 PIP 라는 시스템을 설치해준다.

파이썬 개발 환경에 패키지들을 설치하기 위해서 pip 명령을 자주 사용한다. pip는 파이썬으로 작성된 패키지 라이브러리들을 관리해주는 시스템이다. 

 

pip 에 대해서 궁금하다면 아래의 블로그를 통해 간단히 확인해보면 좋다.

https://dev.plusblog.co.kr/40

 

파이썬(Python) pip란 무엇인가?

파이썬의 장점 중 하나는 다양한 패키지들의 지원이다. numpy, beautifulsoup 같은 다양한 라이브러리 패키지들이 제공되어 머신러닝 프로젝트들의 실제 계산 과정을 쉽게 이용할 수 있다. 이런 패키지들의 제공은..

dev.plusblog.co.kr

pip를 설치하기 위해

terminal에서

>> sudo easy_install pip

입력한다.

 

비밀번호를 물어보면 mac 계정 비밀번호를 입력해주고,

설치가 완료되었으면,

 

>> pip -V

명령어를 입력하여, pip 가 잘 설치되었는지 확인한다. (버전이 나오면, 설치가 완료되었다고 간주)

 

 

이로써 앞으로는 주피터 환경에서 필요한 라이브러리가 있다면

terminal 창에서

 

ex)

>> pip install numpy

>> pip install pandas

처럼 손쉽게 설치해줄 수 있다.

반응형
반응형

파이썬 로고

Python2점대와 3점대가 차이가 생기는 이유: 두 버전간의 backward compatibility를 지원하지 않는 부분이 많다는 것이다.

 

python 2.7 버전이 2010년에 처음 세상에 나온 이후로, 연구 목적으로 사용되고 있고,

지금도 다양한 연구 목적으로 python 2점대를 사용중이다.

 

그러나 python2점대보다는 python3 점가 계속 발전하면서, numpy, pandas, SciPy, SymPy, IPython 등 연구목적으로 만들어진 수많은 Python 라이브러리는 Python 3점대에 호환성이 잘 되고, 계속 발전해가고 있다.

 

관련 영상 참고

https://youtu.be/f_6vDi7ywuA

 

이 외에 간단한 차이를 설명하자면,

 

1. xrange vs range

파이썬 2에서는 xrange를 지원하지만,

파이썬 3에서는 xrange는 아니고, range만 지원한다.

 

 

2. print

파이썬 2: print "test"

파이썬 3: print("test") <-- 괄호를 넣어주어야 한다.

 

3. 나눗셈

파이썬 2: 정수 / 정수 = 정수 (5/2=2)

파이썬 3: 정수 / 정수 = 실수 (5/2=2.5)

 

이렇게 차이가 발생하니, 파이썬의 버전을 잘 맞춰주어서 코드를 짜주어야 한다.(특히 나눗셈)

 

 


출처: https://goodtogreate.tistory.com/entry/Python-2-와-Python-3의-차이점 [GOOD to GREAT]

출처: https://tech.ssut.me/python-3-is-the-future/

 

반응형
반응형

 

아래의 코드를 명령창에 실행하면 된다.

 

>> sudo bash

>> chattr -i /etc/sudoers

>> chmod u+w /etc/sudoers

 

그 후 수정하면 된다.

ex)

>> vi /etc/sudoers

반응형

'IT' 카테고리의 다른 글

MacBook 파이썬 설치하기  (0) 2020.04.21
Python2 vs Python3  (0) 2020.04.21
이맥스 자동완성 기능 설치  (0) 2020.04.20
Expo.io를 이용한 React native 앱 만들기  (0) 2020.04.14
MacBook에 VM 설치  (0) 2020.04.14
반응형
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    east_car_num = 1
    
    passing_car_num = 0
    
    # 최초 동쪽으로 가는 차 위치
    try:
    # 동쪽으로 가는 차가 없으면 에러 발생하여 passing_car가 없으므로 return 0
        east_car = A.index(0)
    except:
        return 0
        
    for i in range(east_car+1,len(A)):
        if A[i] == 1:
            passing_car_num += east_car_num
            
            if passing_car_num > 1000000000:
                return -1
        else:
            east_car_num += 1
            
            
    return passing_car_num
    
    
    pass
반응형

'Codility' 카테고리의 다른 글

Codility - MaxProductOfThree  (0) 2020.04.24
Codility - Distinct  (0) 2020.04.23
Codility - MinAvgTwoSlice  (0) 2020.04.19
Codility - GenomicRangeQuery  (0) 2020.04.19
Codility - CountDiv  (0) 2020.04.18
반응형

.el 파일은 

make 명령어로 실행할 수 있다.

 

emacs --deamon ==> 이맥스 데몬 서버 띄우기

 

emacs -q => GUI 창 열기

emacs -t => 콘솔창에서 편집

 

M-x : emacs -q 로 창을 하나 여고, esc+x 를 같이 누르면  된다.

 

 

emacsclient -e "(kill-emacs)" : 정상적으로 이맥스 서버 데몬 종료 명령어

반응형

'IT' 카테고리의 다른 글

Python2 vs Python3  (0) 2020.04.21
os, readonly 파일 수정방법(feat, sudoers 수정)  (0) 2020.04.20
Expo.io를 이용한 React native 앱 만들기  (0) 2020.04.14
MacBook에 VM 설치  (0) 2020.04.14
이맥스 사용법  (0) 2020.04.09
반응형

20%의 정답률 코드ㅠㅠ

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    # step 1 - input array A
    # already succeed
    tmp = sum(A[0:2])/len(A[0:2])
    
    # step 2 - get the avaerage value in for loop
    A_length = len(A)
    for P in range(A_length):
        for Q in range(P+1,A_length-1):
            arr_ = A[P:Q+1]
            arr_sum = sum(arr_)
            arr_len = len(arr_)
            if tmp >= arr_sum/arr_len:
                tmp = arr_sum/arr_len
                return_value = P
                
    return return_value
    
    pass

 

slice가 몇개까지 쪼개질 지 그 길이를 먼저 구하고 그만큼만 돌리려고 하는 코드는 좋은 접근이었다.

 

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    # step 1 - input array A
    # already succeed
    
    # step 2 - get a length of slice
    slice_len = len(A)-1
    length = len(A)
    arr = []
    
    for i in range(2,slice_len):
        for j in range(slice_len-i+1):
            arr.append(sum(A[j:j+i])/len(A[j:j+i]))
            print(j,"###",sum(A[j:j+i])/len(A[j:j+i]))
            
    
    
    return min(arr)

    

한개씩 더해가면서 최솟값을 구하려고 하는 접근도 정답률은 좋지 못했지만, 나름 괜찮은 발상이었다.

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    
    if len(A) == 3:
        return 0
    
    # step 1 - input array A
    # already succeed
    
    length = len(A)-1
    
    X = A[:length-1]
    Y = A[1:length]
    C = [x+y for x,y in zip(X,Y)]
    tmp = min(C)/2
    
    print(C.index(min(C)))
    
    
    return_value_index = C.index(min(C))
    
    
    for i in range(2,length):
        print(i)
        Y = A[i:length]
        print(Y)
        C = [x+y for x,y in zip(C[:length-i],Y)]
        print(C)
        if tmp >= min(C)/i+1:
            tmp = min(C)/i+1
            return_value_index = C.index(min(C))
    
    
    return return_value_index

    

 

 

다양한 시도 끝에 결국 구글의 힘을 빌렸다.ㅠㅠ

 

잘 설명해주신 링크가 있어서 미리 출처를 밝힌다.

https://cheolhojung.github.io/posts/algorithm/Codility-MinAvgTwoSlice.html

 

[Codility] MinAvgTwoSlice 문제 풀이 | jcheolho

배열의 모든 조합(P부터 Q까지, 0 <= P < Q)의 평균값에 대해서 최소 평균값을 갖는 P를 찾는 문제이다. 첫번째 풀이 O(N^2) 일단 무식한 방법으로 풀어봤는데, 당연히 time out에 걸릴 줄 알았고, 코드도 딱히 설명할 필요가 없으므로 패스하자. 두번째 풀이 구간 합에 분류되어 있길래 응용할 수 있는 방법을 생각해봤는데 도저히 생각나질 않는다. 결국 이번 문제도 구글의 힘을 빌렸다. 참고 . 이 포스팅을 작성하신 분이 가장 이해하기 쉽게

cheolhojung.github.io

 

핵심은 이렇다.

 

 

4개의 원소의 평균은 2개씩 나누어서, 각 (2개의 평균)의 최솟값보다 크다고 한다. 그래서 최솟값이 있는 위치(인덱스)를 구하면 되는 문제였다. 열심히 풀어보았는데 생각보다 정확도가 잘 안되서 화가난다.!!

 

아래는 시간복잡도 O(N)의 100% 정답코드다

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    
    min_value = sum(A[0:2])/2
    min_index = 0
    for i in range(len(A)):
        try:
            if min_value > (A[1+i] + A[i])/2:
                min_value = (A[1+i]+A[i])/2
                min_index = i
            
            if min_value > (A[2+i] + A[1+i] + A[i])/3:
                min_value = (A[2+i] + A[1+i] + A[i])/3
                min_index = i
        except:
            break
    
    return min_index
    
    pass

 

반응형

'Codility' 카테고리의 다른 글

Codility - Distinct  (0) 2020.04.23
Codility - PassingCars  (0) 2020.04.20
Codility - GenomicRangeQuery  (0) 2020.04.19
Codility - CountDiv  (0) 2020.04.18
Codility - PermCheck  (0) 2020.04.18

+ Recent posts