macOS 또는 OS X에 pip를 어떻게 설치합니까?


1676

나는 어제 대부분의 시간을 설치에 대한 명확한 대답을 찾기 위해 보냈다 pip(Python의 패키지 관리자). 좋은 해결책을 찾을 수 없습니다.

어떻게 설치합니까?

답변:


3263

업데이트 (2019 년 1 월) :

easy_install되었습니다 되지 . get-pip.py대신 사용하십시오 :

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

오래된 답변 :

easy_install pip

이를 실행하기 위해 관리자 권한이 필요한 경우 다음을 시도하십시오.

sudo easy_install pip

25
프록시 뒤에 있다면 http_proxy와 https_proxy가 올바르게 설정되어 있는지 확인한 다음 sudo와 함께 '-E'옵션을 사용하십시오. sudo -E easy_install pip
— Neil Schaper

18
Installed /Library/Python/2.7/site-packages/pip-6.0.6-py2.7.egg-python3 설치는 어떻습니까? 이것은 pip가 내 python2 설치를 사용한다는 것을 의미합니까?
— temporary_user_name

44
그것은 잘못된 파이썬에 대한 루트 자격 증명 핍 설치합니다 : 여분의 경고 : 사제 기반의 파이썬 (당신은 / etc / 경로를 변경하는 경우 예)를 설치하고 PATH에 앞서 발생했을 때이를 실행하지 않는
— acidjunk

11
에있어 오류 #notsoeasy 다운로드 오류 pypi.python.org/simple : [SSL : TLSV1_ALERT_PROTOCOL_VERSION] TLSv1의 경고 프로토콜 버전 (_ssl.c : 590) - 일부 패키지를 찾을 수 없습니다! pip 오류에 대한 로컬 패키지 또는 다운로드 링크가 없습니다. Requirement.parse ( 'pip')에 대한 적절한 배포를 찾을 수 없습니다
— htafoya

5
@htafoya 같은 오류가 발생했습니다. 이것은 대신 나를 위해 일했습니다 . curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && sudo python get-pip.py

590

⚡️ TL; DR — 한 줄 솔루션.

당신이해야 할 일은 :

sudo easy_install pip

2019 : ⚠️ easy_install는 더 이상 사용되지 않습니다 . 기본 설치 방법은 아래의 방법 # 2를 확인하십시오 !

나는 gif를 만들었다. 왜 안돼?

Mac에 PIP 설치

세부:

⚡️ 좋아, 위에서 주어진 솔루션을 읽었지만 다음 은 설치 하기 쉬운 EASY 솔루션 pip입니다.

MacOS가 Python설치되어 제공 됩니다. 그러나 Python설치 했는지 확인 하려면 터미널을 열고 다음 명령을 실행하십시오.

python --version

이 명령이 Python존재 하는 버전 번호를 반환하는 경우 또한 어떤 이미에 액세스 할 수 있다는 것을 의미 easy_install당신이 사용하고있는 고려를 macOS/OSX.

ℹ️ 이제 다음 명령을 실행하기 만하면됩니다.

sudo easy_install pip

그 후에는 pip설치되며 다른 패키지를 설치하는 데 사용할 수 있습니다.

pip이 방법으로 설치하는 데 문제가 있으면 알려주십시오 .

건배!

추신 : 나는 그것에 관한 게시물을 블로그에 올렸습니다. 빠른 팁 : macOS 또는 OS X에 pip를 어떻게 설치합니까?


✅ 업데이트 (2019 년 1 월) : 방법 # 2 : 2 라인 솔루션 —

easy_install되었습니다 되지 . get-pip.py대신 사용하십시오 .

우선 get-pip파일을 다운로드 하십시오

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

이제이 파일을 실행하여 설치하십시오. pip

python get-pip.py

그렇게해야합니다.

또 다른 GIF? 여기 요!

pip 수동 설치


4
오류 : EnvironmentError로 인해 패키지를 설치할 수 없습니다 : [Errno 13] 권한 거부 : '/Library/Python/2.7/site-packages/pip' --user옵션 사용을 고려 하거나 권한을 확인하십시오.
— 2540625 21:06에

1
sudo
— Ahmad Awais

1
python get-pip.py를 시도한 후 오류가 발생했습니다 : EnvironmentError로 인해 패키지를 설치할 수 없습니다 : [Errno 13] 권한 거부 : '/Library/Python/2.7/site-packages/pip-19.1.1.dist-info / RECORD ' --user옵션 사용을 고려 하거나 권한을 확인하십시오.
— 조나스

방금 시도한 on.ahmda.ws/424d72- 예상대로 작동합니다. 최신 방법을 사용하고 있습니까?
— Ahmad Awais

후에 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, 나는 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to bootstrap.pypa.io:443어떤 아이디어를 얻 습니까? @AhmadAwais
— Jony

483

OS X에서 Homebrew를 통해 설치할 수 있습니다. Homebrew와 함께 Python을 설치하는 이유는 무엇입니까?

OS X과 함께 제공되는 Python 버전은 학습에는 좋지만 개발에는 좋지 않습니다. OS X와 ​​함께 제공된 버전은 공식적인 최신 Python 릴리스에서 최신 버전이 아닐 수 있으며 안정적인 프로덕션 버전으로 간주됩니다. ( 소스 )

Homebrew는 OS X의 패키지 관리자입니다 . Homebrew 페이지 에서 자세한 내용을 확인 하십시오 . Homebrew가 설치되면 다음을 실행하여 최신 Python, Pip & Setuptools를 설치하십시오.

brew install python

2
/ usr / local / bin / pip 폴더가 경로에 있지만 pip가 실행되고 있지 않습니다. 폴더를 삭제했다가 다시 설치하면 실행됩니다. 감사 !!
— discipulus

16
homebrew를 사용하면 시스템이 아닌 자체 파이썬을 사용하게됩니다. 당신이 wxpython을 사용하려는 경우 이것은 지옥으로가는 길입니다 ...
— GreenAsJade

3
"스도"가 필요하지 않으므로이 솔루션이 마음에 듭니다. 시스템의 파이썬을 다루지 마십시오.
— justrhysism

3
homebrew와 함께 python을 설치하면 pip도 설치됩니다. 모든 것이 로컬에 설치되며 필요하지 않습니다 sudo.
— joshlsullivan

81
Python을 brew-install하지만 pip여전히 경로에 있지 않다면 다음과 같이 다시 연결해야합니다.brew unlink python && brew link python
— Christian Long

452

2013 년 이후로 파이썬 자체는 pip외부 명령 (및 인터넷 연결 없음) 을 설치할 수 없으며 설치가 가능 합니다.

sudo -H python -m ensurepip

이것은 것과 비슷한 설치를 만듭니다 easy_install.


3
완전한! 시스템에서 쉽게 설치할 수 없어 다른 솔루션이 작동하지 않았습니다.
— user3235770

1
이것은 다른 방화벽이 실패한 방화벽 뒤에서 작동했습니다. 감사!
— Floris

6
이것은 여러 버전의 파이썬이 있고 pip를 얻으려면 특정 버전이 필요합니다.
— Teepeemm

2
@ user3.1415927 사용할 수 있음/path/to/your/python -m pip <command>
— felixphew

5
최고의 솔루션은 MacOS에서 매력처럼 작동했습니다. easy_install에서 다운로드 오류가 발생했습니다.
— eXc

134

Mac에서 :

  1. easy_install 설치

    curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python
  2. 핍 설치

    sudo easy_install pip
  3. 이제 외부 모듈을 설치할 수 있습니다. 예를 들어

    pip install regex   # This is only an example for installing other modules

위의 솔루션은 모두 DistributionNotFound 예외를 생성했습니다. 이것은 완벽하게 작동했습니다.
— stuckj

easy_install 설치 후 터미널을 다시 시작해야했고 pip install 무언가에서 SUDO를 실행해야했습니다. 그러나 그 후에는 완벽하게 작동합니다.
— Sindri Þór

3
최신 OSX는 이미 easy_install과 번들로 제공되며 호출 curl https://bootstrap.pypa.io/ez_setup.py -o - | sudo python하면 설정이 중단됩니다! easy_setup이 이미 설치되어 있지 않은 경우 설치하지 마십시오.이 명령 후 설정을 복구하는 데 한 시간을 보냈습니다 ( stackoverflow.com/questions/6012246/… ).
— Sergiy Sokolenko

1
파이프 통역에 대한 다운 보팅은 통역사에게 직접 컬됩니다. (또한이 질문에 대한 더 나은 답변이 있다고 생각합니다.)
— lindes

이것들은 아마존의 공식 지침이기도합니다 -docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html
— chrismarx

90

pip를 통해 OS X에서 사용할 수 있습니다 easy_install.
터미널을 열고 다음을 입력하십시오.

sudo easy_install pip

비밀번호를 묻는 메시지가 표시되면 일반 로그인 비밀번호를 입력하십시오.
설치가 완료되면 pip예상대로 사용할 수 있습니다 .

참고 : 이것은 다른 파이썬 패키지에서도 작동합니다.


이전에 얻은 모든 것이 pip를 통해 무언가를 설치하려고하는 DistributionNotFound 예외 일 때 Mac 에서이 한 줄의 pip를 수정했습니다 . (Mac OS X
— 10.10.4

1
나는 또한 달렸다pip install --upgrade pip
— thorr18

pip는 파이썬 버전에 의존합니까? python3을 설치했지만이 명령은 python2를 사용하는 것 같습니다. pip가 성공적으로 설치되었습니다.
— Felix

85

2019 년 10 월 업데이트 : MacOs Mojave

MacOS는와 함께 제공 python2되지만 와는 함께 제공 되지 않습니다 pip. 어쨌든, homebrew로 관리하는 것이 낫습니다.

https://docs.brew.sh/Installation

python2를 설치하십시오 :

brew install python

경고 : 최신 macOS (2019)의 경우 설치 python3가 가능하며 python2실제로 수행해야 할 작업은 다음과 같습니다.brew install python@2

python3 설치 :

brew install python3

업데이트 : Python 3

를 설치 python3하면 pip가 자동으로 설치됩니다.

brew install python3

NEW 2019 : 이제 pip 버전 3을 사용하려면을 사용 pip3하거나 다음을 실행할 수 있습니다. python3, 버전 3을 사용하려면 pip3과 함께 패키지를 설치할 때와 분리됩니다 python2.

OLD : pip를 업그레이드하기 만하면되지만 Python 3과 함께 사용할 가상 환경을 만들어야합니다. 프로젝트 폴더 나 폴더를 사용할 수 있습니다.

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip

버전을 확인하십시오.

pip -V
python --version

NEW 2019:
pip3 -V
python3 --version

환경을 비활성화하려면

$ deactivate

나를 위해, sudo python get_pip.py잘 작동했습니다 .OS X python에 원인이 이미 설치되었습니다!
— Abhishek Ghosh

Mac의 기본 Python 설치는 2.7.x이므로 최신 버전의 Python을 사용하려는 경우이 옵션을 사용할 수 있습니다. 위의 2 단계를 python 대신 python3으로 변경하면됩니다. 추가로, brew of python도 pip를 설치하고 업그레이드 / uisng pip에 대한 정보를 제공합니다.
— Delicia Brummitt

@DeliciaBrummitt 난 당신의 제안에 따라 내 대답을 수정했습니다, 나는 python3를위한 새로운 블록을 추가 한
— stackdave

curl -O https://bootstrap.pypa.io/get-pip.py | sudo python3 get-pip.pyEl Capitan의 Python3 용.
— marw

7
내 PIP가 호출됩니다pip3
— 에반 모란

83

가장 간단한 해결책은 pip의 홈 사이트에서 설치 지침 을 따르는 것 입니다.

기본적으로 이것은 다음으로 구성됩니다.

  • 다운로드 get-pip.py . 스크립트를 루트로 실행해야하므로 신뢰할 수있는 링크를 따라이 작업을 수행하십시오.
  • 요구 sudo python get-pip.py

이 솔루션의 주요 장점은 python을 실행 get-pip.py하는 데 사용 된 python 버전에 대해 pip를 설치한다는 것 입니다. 즉, 기본 OS X python 설치를 사용하여 실행 get-pip.py하면 시스템에서 python 설치를 위해 pip를 설치합니다.

OS X에서 패키지 관리자 (homebrew 또는 macport)를 사용하는 대부분의 솔루션은 패키지 관리자 환경에서 python의 중복 설치를 생성하므로 시스템에 불일치가 발생할 수 있습니다. 다른 대신에 파이썬.


파이썬에 두 번째 추출기가 설치되어 있지만 원래 / usr / bin mac 파이썬에 pip를 설치하려고합니다. 해당 설치를 위해 pip에 액세스하는 방법을 알고 있습니까? / usr / bin / python을 사용하여 pip를 설치했지만 pip는 / usr / bin /에 없었습니다.
— 웨슬리

1
@Wesley 두 번째 설치는 어떻게 했습니까? 파이썬 버전 관리자를 사용하는 경우 원하는 파이썬 버전을 설정하는 옵션이 있어야하며 위의 방법을 통해 해당 버전에 대한 pip를 설치할 수 있어야합니다.
— Jorge Bucaran

1
당신이 실행 때문에, 안전하지 않은 것입니다 get-pip.py아래 sudo,하지만 당신은 당신이 올바른 다운로드 보장 할 수 없습니다 get-pip.py당신이 체크섬을 알고있을 때까지. 이것에 더 많은 것 : stackoverflow.com/questions/34587473/…
— Vladimir Ignatyev

2
연결된 페이지가 pip.pypa.io/en/stable/installing 으로 이동 한 것 같습니다. "경고! 운영 체제 또는 다른 패키지 관리자가 관리하는 Python 설치를 사용하는 경우주의하십시오. get-pip. py는 이러한 도구와 조정되지 않으며 시스템이 일관성이없는 상태가 될 수 있습니다. "
— Taylor Edmiston

2
git-pip.py스크립트를 사용하여 애플의 python 용 pip를 설치하는 스크립트가 기존의 스크립트의 주요 유스 케이스이자 homebrew를 통해 python을 설치 하기 때문에 경고가 혼란 스럽습니다 .
— 테일러 에드 미 스톤

42

Python에 MacOS가 이미 포함되어 있어도 별도의 Python 사본을 설치하는 것이 일반적입니다. 당신은 당신이 의도 한 파이썬의 복사본을 사용하고 있는지 확인해야 할 책임이 있습니다. 그러나 이점은 최신 Python 릴리스를 제공하고 잘못 될 경우 시스템을 보호하지 못하도록 보호하는 것입니다.

HomeBrew를 사용하여 Python을 설치하려면 다음을 수행하십시오.

brew update
brew install python # or brew install python3

이제 새로 설치된 Python으로 작업하고 있는지 확인하십시오.

ls -lh `which python`

... "Cellar"가있는 경로에 대한 심볼릭 링크를 표시해야합니다.

lrwxr-xr-x  1 chris  admin    35B Dec  2 13:40 /usr/local/bin/python -> ../Cellar/python/2.7.8_2/bin/python

Pip은 Python과 함께 설치해야합니다. 다음을 입력하여 업그레이드 할 수 있습니다.

pip install --upgrade pip

이제 PyPI에 50,000 개 이상의 패키지를 설치할 준비가되었습니다 .

기타 사항

이전에는 get-pip.py를 사용하여 pip를 설치했습니다 . 그러나 문서는 get-pip.py가 패키지 관리자와 조정하지 않으며 시스템이 일관성이없는 상태로 남아있을 수 있다고 경고합니다. 어쨌든 pip가 2.7.9부터 Python에 포함되어 있기 때문에 필요하지 않습니다 .

pip는 Python의 유일한 패키지 관리자가 아닙니다. easy_install도 있습니다. 두 가지를 혼합하는 것은 좋지 않으므로 그렇게하지 마십시오.

마지막으로 Python 2와 3을 모두 설치 한 경우 pip 는 마지막으로 설치 한 Python을 가리 킵니다. pip2 또는 pip3 을 명시 적으로 사용하는 습관을 가지 십시오 . 따라서 어떤 Python이 새 라이브러리를 받고 있는지 확신 할 수 있습니다.

행복한 해킹!


1
실제로 pythonpython2에 대한 python3심볼릭 링크와 python3에 대한 심볼릭 링크 ...
— Corey Goldberg

1
Homebrew docs의이 페이지는 각 명령이 가리키는 버전을 설명합니다. docs.brew.sh/Homebrew-and-Python
— Albert Vila Calvo

42

python2와 python3을 모두 설치 한 사람들을위한 해결책은 다음과 같습니다.

python2.7 -m ensurepip --default-pip

또한 python3.6 용 pip를 설치하려는 경우 :

wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py

3
사람들이 오래된 바보 같은 일을 멈출 수 있도록 이것은 최근의
— 파이썬에

python get-pip.py
— David Odhiambo

27

(요세미티 또는 엘 카피 탄 내가 믿는에서 ... 이후 시에라에서 적어도) 최근 버전에서, 당신은 실행해야 brew postinstall python3후에 brew install python3당신이 사제를 사용하는 경우.

그래서,

brew install python3 # this only installs python
brew postinstall python3 # this installs pip

업데이트-1.5 이후 Homebrew 버전

공식 Homebrew 페이지 에 따르면 :

2018 년 3 월 1 일에 Python 공식이 Python 3.x로 업그레이드되고 Python 2.7 설치를 위해 python @ 2 공식이 추가 될 예정입니다. 수동 추출 링크-힘). python2, python3 및 python @ 3 별칭을 유지합니다.

따라서 Python 3을 설치하려면 다음 명령을 실행하십시오.

brew install python3

그런 pip다음가 자동으로 설치되며로 모든 패키지를 설치할 수 있습니다 pip install <package>.


7
나를 위해 작동하지 않았다. 나는 시에라에있다. 이러한 명령을 수행 한 후에는 성공한 것처럼 보였습니다 -bash: pip: command not found. 나를 위해 일한 것은 최고 답변이었습니다 :sudo easy_install pip
— iamse7en

@ iamse7en 터미널을 다시 시작했거나 다른 탭을 열었습니까? postinstall 명령 후 로그는 무엇입니까?
— Blaszard

FWIW-나도 pip: command not found메시지를 받았다 . iTerm에서 새 탭을 열려고했는데 같은 메시지가 나타납니다. 양조 명령에 오류가 없습니다.
— domdambrogia 2014

나는 이것이 pip가 아닌 python 3을 설치할 것이라고 생각합니다.
— Karthik RP

4
그것이 작동하지 않는 사람들을 위해, "pip"가 아닌 pip3을 찾고 아마도 별명을 생성하십시오
— eMerzh


25

Brew를 먼저 설치해야합니다 :

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

그런 다음 파이썬을 양조하십시오.

brew install python

그런 다음 pip작동합니다


8
그러나이 경우 시스템 파이썬에 pip를 설치하지 않고 새로운 파이썬 및 pip를 함께 설치했습니다. 그럼 당신은 wxpython을 사용하려고 모든 종류의 투쟁에있을 것입니다 ...
— GreenAsJade

19

"pip3"을 원하면 ff를 수행 할 수 있습니다.

양조를 통해 : brew install python3

여기에 이미지 설명을 입력하십시오

그럼 당신은 실행할 수 있습니다

pip3 <command> [options]


14
$ sudo port install py27-pip

그런 다음 py27-pip bin 디렉토리를 포함하도록 PATH를 업데이트하십시오 (~ / .bash_profile PATH = / opt / local / Library / Frameworks / Python.framework / Versions / 2.7 / bin : $ PATH에 추가 가능)

pip는 새 터미널 창에서 사용할 수 있습니다.


port는 기본적으로 설치되어 있지 않습니다
— Parag

12

pip 를 설치하거나 업그레이드하려면 http://www.pip-installer.org/en/latest/installing.html 에서 get-pip.py 를 다운로드 하십시오.

그런 다음 다음을 실행하십시오. sudo python get-pip.py

예를 들면 다음과 같습니다.

sudo python Desktop/get-pip.py 
Password:
  Downloading/unpacking pip
  Downloading pip-1.5.2-py2.py3-none-any.whl (1.2MB): 1.2MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...

sudo pip install pymongo
Password:
Downloading/unpacking pymongo
  Downloading pymongo-2.6.3.tar.gz (324kB): 324kB downloaded
  Running setup.py (path:/private/var/folders/0c/jb79t3bx7cz6h7p71ydhwb_m0000gn/T/pip_build_goker/pymongo/setup.py) egg_info for package pymongo

Installing collected packages: pymongo
...

1
예, 그러나 더 간단한 방법이 있습니다
— ultimatetechie

get-pip.py는 약 단순를 얻을 수있다로
— 코리 골드버그

10

필요없이 설치 sudo

당신은 설치하려는 경우 pip에 대한 필요없이 sudo항상 전 세계적으로 패키지를 설치하려고 할 때, 설치 실망, pip로컬 폴더에 /usr/local이 같은 :

curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
python get-pip.py --prefix=/usr/local/

그리고:

pip install <package-of-choice> 없이 sudo


4
pip 설치 결과ImportError: No module named pip._internal
— raarts

이것은 언급 된 ImportError @raarts를 수정합니다 : stackoverflow.com/a/49997795/164545
— Seanonymous

9

python3을 먼저 설치 한 다음 pip3을 사용하여 패키지를 설치하십시오.

brew install python

python3이 설치되고 pip가 함께 제공됩니다. pip를 사용하여 일부 패키지를 설치하려면 다음을 실행하십시오.

pip3 install package

python3을 사용하고 싶기 때문에 pip3입니다.


8

아래 웹 사이트에서 Python 설정 도구를 다운로드하십시오.

https://pypi.python.org/pypi/setuptools

tar 파일을 사용하십시오.

다운로드가 끝나면 다운로드 한 폴더로 이동하여 실행하십시오.

python setup.py install

그렇게하면 easy_install이 생깁니다.

다음을 사용하여 pip를 설치하십시오.

sudo easy_install pip

python.org에서 Mac 설치 프로그램 패키지를 다운로드하면 설치에 pip가 번들로 제공됩니다. 더 이상 설정 도구를 실행할 필요가 없습니다.
— benwiggy

5

이전 Mac (10.8)에서는 어떻게 든 쉽게 설치가 작동하지 않습니다. 이것은 내 문제를 해결합니다.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

wget이 없으면 브라우저에서 열고 다른 이름으로 https://bootstrap.pypa.io/get-pip.py저장하십시오.get-pip.py


-1

나는 Anaconda를 추천합니다. Python으로 구동되는 최고의 개방형 데이터 과학 플랫폼입니다. 많은 기본 패키지가 설치되어 있습니다. Anaconda ( conda)에는 자체 설치가 포함되어 pip있습니다.


5
질문과 관련이 없음
— Don P

2
@DonnyP 사실,이 제안 은 문제를 해결하고와 함께 원래 문제를 신속하게 해결합니다 pip. 이 답변은 권장되고 장려되어야합니다.
— pylang

1
이것은 대답이 아닙니다. 이것은 광고입니다. 내가 틀렸다면 저자는 이것이 어떻게 문제를 해결하는지에 대한 자세한 내용을 제공해야합니다.
— 에밀 레나 Enriquez

1
문제는 pip를 설치하는 방법이었습니다. 이미 pip가 포함 된 제품을 추천하는 경우 귀하의 답변 (또는 제안)은 질문과 관련이 없습니다.
— 익명 유형

2
이것이 정답입니다. 이미 설치된 상태로 conda제공됩니다 pip. conda직접 시스템 설치로 혼란스러워 설명 된 다른 방법을 사용하는 것보다 Mac 에서 설치를 사용하는 것이 좋습니다 . 특히 파이썬에 관해서는, 맨손으로 물건을 설치하는 것은 pip매우 나쁜 생각입니다. 패키지 환경을 올바르게 격리하기 위해 pip함께 제공 되는 것을 사용해야 conda합니다.
— user5359531
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.