본문 바로가기

프로그래밍/Python

로컬 PYPI 서버 설정하기

반응형

PYPI 서버를 설정하면서 큰 도움이 되었던 포스팅을 번역해 봅니다.

2013년 12월 30일에 쓰여진 포스팅이지만, 간결해서 따라하기 좋았습니다. 완벽한 번역을 지양하고, 일부만 거칠게 번역해 봅니다. (번역이 아니라 원본에 대한 커멘트들이 되었네요. 아무튼 원본포스팅과 같이 보면서 참조하시기 바랍니다.)

원본링크 : https://jamie.curle.io/posts/setting-up-a-custom-pypi-server/

소개

원작자는 PyPI 에 패키지를 올리기 전에, 테스팅을 하기 위해 개인 PyPiServer 를 설정했으며, 그 과정을 포스팅했습니다.

개요

아래에서 virtualenv 환경에서 PyPi 서버를 설정하고, supervisord 로 서비스를 설정하고, Nginx 를 통해 ssl 리버스프록싱하여 설정하는 것까지 설명합니다. (번역도 다 할지는 모르겠군요.)

 PYPI 설정하기

간단합니다. 1. 디렉토리를 만들고, 2. virtualenv 를 만들고, 3. activate 하고, 4. pypiserver 패키지를 설치합니다.

# 디렉토리 만들기

mkdir -p ~/pypi/packages

cd ~/pypi

# virtualenv 만들고, activate 하기

virtualenv venv

. ./venv/bin/activate

# virtualenv 에서 pypiserver 패키지 설치

pip install pypiserver

이제 pypi 서버를 실행하면 됩니다!!!

$ pypi-server -p 7001 ~/pypi/packages

This is pypiserver 1.1.3 servering '/home/jamiecurl/pypi/packages' on http://

Bottle v0.11.6 server starting up (using AutoServer())...

LIstening on http://0.0.0.0:7001/

Hit Ctrl-C to quit.

 

## 역자 주 : 윈도우에서도 비슷한 도스명령으로 디렉토리를 만들고, virtualenv 를 설정하고, activate 하여 실행시킬 수 있습니다. 가장 큰 차이점은 윈도우에서의 virtualenv 는 bin 폴더가 아닌 scripts 폴더가 있고, . ./venv/bin/activate 이 아닌 venv/scripts/activate 명령으로 activate 된다는 점 정도입니다.

## 역자주 계속 : 서버가 실행된 이후에는 로컬웹브라우저로  http://localhost:7001 에 접속이 되는지 확인하면 일단 성공입니다. 이 상태에서 packages 디렉토리/폴더에 pip download 로 내려받은 파일들을 던져넣으면, pip 가 동작합니다.

## 역자주 : pypi-server 라는 패키지도 존재하지만, 오래된 버전이고, 우분투에서 깔끔하게 설치가 되지 않았습니다. 반드시 pypiserver 로 설치하세요.

supervisord 로 서비스 설정하기

#역자커멘트 : supervisord 설정은 간단해서 원작자는 좋아한답니다. 간단한 설정스크립트와 설정방법은 위 링크의 원본포스팅을 참고 바랍니다. 복사해 넣으려 했으나, 오타등의 문제가 있을 수 있어서 하지 않겠습니다.

# 역자는 1. upstart 스크립트를 /etc/init/ 아래에 만들어 넣는 방법으로 설정하려 했었고, 그러나, ubuntu 15.01 에서 upstart 가 systemd 로 바뀌어서, 2. systemd 스크립트를 만들어, 설정하였습니다. systemd 스크립트 예제는 https://pypi.python.org/pypi/pypiserver 에 잘 나와있습니다.

NGINX 를 이용하여 리버스 프록싱.

#역자커멘트 : NGINX 를 이용하여, 로컬 http 7001 포트를 https 로 외부에 서비스하는 설정 스크립트가 있습니다. 역시 원본 포스팅 링크를 참조하십시오.

NGINX 설정을 하지 않고, http 로 서비스하는 경우에는 pip 를 실행하였을 때, "untrusted" 경고가 나옵니다. 이 경고를 무시하기 위한 옵션도 있으나, 가능하면 https 를 설정하여 이용하기 바랍니다.

pip 클라이언트 설정

#역자커멘트 : 아무 옵션이 없이 pip 를 실행하면, 디폴트로 https//pypi.python.org/simple/ 의 인덱스 페이지를 참조하게 됩니다. 특정한 인덱스 페이지를 참조하게 하려면, pip install -i <로컬서버url> 이련식의 옵션을 주어야 합니다. 이게 귀찮으니, 인덱스 url 을 pip.conf 에 설정하는 방법을 설명합니다. 역시 원본 링크를 참조하세요.

업로드설정에 대한 설명을 건너뜁니다.

결론

이런 설정으로 내 개인 index 에 "candidate"(후보) 빌드를 올려놓고, 실수와 버그를 테스팅 할 수 있게 되었다. 등등등

728x90