MAC에서 외부 python3 등을 brew등로 설치하고 나서 외부 https 싸이트를 python으로 접근할려고하면 아래 구문이 포함된 에러를 만나게 된다.


ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)

 

로컬 인증서가 등록이 안되어 있어서 그럴것으로 아래 내용으로 all_certifi.py 만들고 한번 실행 해주면 된다.

# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module.  Uses the certificates provided by the certifi package:
#       https://pypi.python.org/pypi/certifi

import os
import os.path
import ssl
import stat
import subprocess
import sys

STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
             | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
             | stat.S_IROTH |                stat.S_IXOTH )


def main():
    openssl_dir, openssl_cafile = os.path.split(
        ssl.get_default_verify_paths().openssl_cafile)

    print(" -- pip install --upgrade certifi")
    subprocess.check_call([sys.executable,
        "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])

    import certifi

    # change working directory to the default SSL directory
    os.chdir(openssl_dir)
    relpath_to_certifi_cafile = os.path.relpath(certifi.where())
    print(" -- removing any existing file or link")
    try:
        os.remove(openssl_cafile)
    except FileNotFoundError:
        pass
    print(" -- creating symlink to certifi certificate bundle")
    os.symlink(relpath_to_certifi_cafile, openssl_cafile)
    print(" -- setting permissions")
    os.chmod(openssl_cafile, STAT_0o775)
    print(" -- update complete")

if __name__ == '__main__':
    main()

Mac OSX에서 python3를 기본으로 쓰기

  • 맥 재설치하면서 python3 를 기본으로 설정하기 위해서 정리함
  • 실제 python 프로젝트가 있다면 프로젝트 레벨로 관리하는것이 좋다. pyenv 사용
  • 지금은 OS 기본 사용을 목적으로 설정 한다.

전제

  • Mac을 쓴다면 일단 패키지 관리자인 brew는 설치한다. 설치되어 있으면 skip (참고: https://brew.sh )
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

방법 1 - 권장하지 않음 (참고만)

  • brew로 python2, python3를 설치하고 shell의 rc파일에 alias를 잡는 방식.
brew update
brew install python3
echo "alias pip=/usr/local/bin/python3" >> ~/.zshrc 
echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc 
# or for Bash
echo "alias pip=/usr/local/bin/python3" >> ~/.bashrc  
echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
# If you need Python 2.7
brew install python@2

방법 2 - 권장

  • brew로 pyenv 를 설치하고 pyenv로 원하는 버전을 설치하고 switching 해서 쓴다.
  • brew 대비 다운도 느리고 build를 해서 설치하는 타입이라 처음 설정시 시간이 좀 더 걸리긴 한다.
  • (혹시나 위의 방법 1을 수행 했다면 .zshrc (또는 .bashrc)를 열어서 python과 pip alias 잡힌 두줄을 삭제 한다)
brew install pyenv
pyenv install 3.8.1
pyenv install 2.7.17 # python2도 pyenv로 관리를 하고 싶다면 실행
pyenv global 3.8.1
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
# or for Bash
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

버전 전환 방법

설치된 python 목록을 pyenv versions으로 보고 pyenv global x.x.x로 전환하면 된다.

pyenv versions
pyenv global 2.7.17

 

Today’s AI Software Infrastructure Landscape (And Trends Shaping The Market)

https://mc.ai/todays-ai-software-infrastructure-landscape-and-trends-shaping-the-market/

 

Today’s AI Software Infrastructure Landscape (And Trends Shaping The Market)

At Work-Bench, we host quarterly peer roundtables connecting corporate executives solving some of the largest technology pain-points facing their organization. At our Machine Intelligence Roundtabl…

mc.ai

 

Introducing Redpoint’s ML Workflow Landscape

https://medium.com/memory-leak/introducing-redpoints-ml-workflow-landscape-312ca3c91b2f

 

Introducing Redpoint’s ML Workflow Landscape

ML is not only a hot buzz word but is becoming an expected component of modern businesses. Companies that want to stay competitive invest…

medium.com

 

A Turbulent Year: The 2019 Data & AI Landscape

https://mattturck.com/data2019/

 

A Turbulent Year: The 2019 Data & AI Landscape

It has been another intense year in the world of data, full of excitement but also complexity. As more of the world gets online, the “datafication” of everything continues to accelerate. This mega-trend keeps gathering steam, powered by the intersection of

mattturck.com

 

'AI' 카테고리의 다른 글

Data & AI Landscape (2019)  (0) 2020.01.17

특정 DIR 파일 리스트

_, _, filenames = next(walk(TARGET_DIR), (None, None, []))
DIR='.'
print ([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(TARGET_DIR, name))])
f = []
for (dirpath, dirnames, filenames) in walk(TARGET_DIR):
    f.extend(filenames)
    break

OSX Package는 개인적으로는 Brew로 설치 하는 걸 권장합니다.

1 단계 – 전제 조건

  • 터미널 :Mac 터미널에 액세스 할 수 있어야 합니다.

  • Homebrew :Homebrew는 대부분의 오픈 소스 소프트웨어를 설치하는 데 사용되는 널리 사용되는 패키지 관리 도구입니다.
    설치가 안되어 있다면, 아래 커맨드로 설치할 수 있습니다.

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

2 단계 – macOS에 Visual Studio Code 설치

brew update
brew cask install visual-studio-code

3 단계 실행

그냥 터미널에서 code 를 실행하면 된다.

XCode CLI (gcc) 설치

xcode-select --install

Android SDK 설치

brew cask install java
brew cask install android-sdk

RFI(Request For Information): RFP 작성을 위한 정보 요청서  

RFP(Request For Proposal): 요구사항 기반의 제안 요청서 

WBS(Work Breakdown Structure): 업무 분해 구조, TBS(Task Breakdown Structure): 작업 분해 구조
: 제품을 개발 생산하는 과정에서 기술적인 사항과 관련하여 하드웨어, 소프트웨어, 서비스 및 기타 작업 과제들을 상세하게 구성하여 조직화하는 것

SOW(Statement Of Work): 작업 지시서, 작업기술서, 업무기술서, 시방서. 공급할 제품 또는 서비스의 상세한 설명

POC(Proof Of Concept): 레퍼런스가 없거나 아직 시장에 나오지 않은 (신기술이 적용된) 신제품에 대한 기능과 성능을 검증하는 단계 

BMT(Bench Marking Test): 동일한 시험환경에서 경쟁사간의 제품 기능 및 성능에 대한 비교시험

'ETC.' 카테고리의 다른 글

PM, RFI, RFP, WBS, SOW, POC, BMT  (0) 2019.09.18
DDoS 장비 구성 방식  (0) 2019.01.23
애자일 소프트웨어 개발 선언,  (0) 2018.08.12
TCP 튜닝  (0) 2018.03.30
Let's Encrypt Wildcard 인증서 발급하기  (0) 2018.03.29
[리눅스] CentOS 7 타임존 변경  (0) 2018.02.08

들어가기 전에

  • 원문: (영어) https://medium.com/google-cloud/how-to-run-visual-studio-code-in-google-cloud-shell-354d125d5748
  • Visual Studio Code의 서버판인 code-server를 Google Cloud shell에 설치 및 구동하여 브라우저 환경의 개발 환경을 만들어 어서 쓸 수 구성하는 방법 입니다. 사실 그냥 서버에 설치하면 되긴합니다. 잠시 쓸 경우 비용감소와 편리성에 있겠네요.
  • Cloud Shell : GCP 의 양방향 셸 환경
  • 증폭 모드 (Boost mode) : 기본제공되는 g1-small(0.5vCpu x 1.70GB Memory)타입에서 24 시간동안 n1-standard-1(1 vCPU x 3.75GB Memory) 타입으로 성능을 올려서 사용하는 기능
  • 상세내용은 다음 링크에서 확인가능합니다.
    https://cloud.google.com/shell/docs/features?hl=ko

1. console.cloud.google.com 로 접속후 Cloud Shell 을 띄웁니다.

2. 좀 더 빠르게 하기 위해 Cloud Shell 의 메뉴버튼에서 '증폭 모드'를 활성화 합니다.

3. Cloud Shell에 아래 내용을 붙여 넣어서 code-server 를 설치합니다.

export VERSION=`curl -s https://api.github.com/repos/cdr/code-server/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")'`
wget https://github.com/cdr/code-server/releases/download/$VERSION/code-server$VERSION-linux-x64.tar.gz
tar -xvzf code-server$VERSION-linux-x64.tar.gz
cd code-server$VERSION-linux-x64

4. code-server를 실행합니다.

./code-server --no-auth --port 8080

5. '포트에서 미리보기 8080' 을 선택하여 새 탭에서 CloudShell을 엽니다.

6. 새창이 열리면서 404 에러가 뜰것입니다. 그러면 주소창에서 '?authuser=0' 를 삭제하고 엔터를 칩니다.

7. 이제 code-server를 사용하실 수 있습니다.

'Cloud > GCP' 카테고리의 다른 글

Visual Studio Code를 Google Cloud shell에 구동하기  (0) 2019.07.21

What’s Blue Origin’s motto?
“Gradatim Ferociter” is Latin for “Step by Step, Ferociously.” Bezos says that’s his approach to spaceflight. “If you’re building a flying vehicle, you can’t cut any corners. If you do, it’s going to be [just] an illusion that it’s going to make it faster. … You have to do it step by step, but you do want to do it ferociously.”

아마존의 창업자 제프 베조즈가 창업한 우주 기업 '블루 오리진'의 모토 이다.

Gradatim Ferociter : "한걸음씩 용감하게" 라고 보통 번역되었있는데 아래의 영어설명을 들어오면 “Step by Step, Ferociously.” 이다.

Ferocious : 사나운, 흉포한; 맹렬한, 격렬한

You have to do it step by step, but you do want to do it ferociously.”
당신은 그것을 차근차근 해나가야 하지만, 맹렬히(격렬히) 하기를 원해야 한다.

한걸음씩 나아가지만, 보다 공격적으로 적극적으로 하기를 원해야 한다는 뜻.

 

 

 

'ETC. > English' 카테고리의 다른 글

Gradatim Ferociter  (0) 2019.06.30
'확인하다' 영어 표현  (0) 2019.06.15

'확인하다' 영어 표현 차이

Clarify, Verify, Validate, Confirm, Check

  • Clarify – (다시 한번 말해달라고 하며 애매모호한 점을 명확하게 하기 위한) 확인하다, 명확히 하다.
    Clarify the position. (입장이 무엇인지 확인하다.) 
  • Verify – (진실로 주장되거나 알려진 사실이 실제로 진실인지 알아보기 위한) 확인하다, 정말인지 검증하다.
    Verify the claim. (주장이 사실인지 확인하다.) 
  • Validate – (권한이 있는 기준에 따라) 검증하다/ 인증하다 / 확인하다, 유효한지 검증하다
    Validate a contract. (계약을 인증하다)
  • Confirm – (사실로 서로 알고 있지만 공식으로 다시 한번) 확인하다. / 승인하다, 내용을 재확인하다.
    Confirm your appointment. (예약을 확인하다)
  • Check – (사실인지 아닌지 알지 못하는 상태에서) 확인하다. / 맞는지 아닌지 체크하다.
    Check your spelling. (스펠링이 맞는지 확인하다)

'ETC. > English' 카테고리의 다른 글

Gradatim Ferociter  (0) 2019.06.30
'확인하다' 영어 표현  (0) 2019.06.15

+ Recent posts