2013-01-31 2 views
0

개인 PyPI 저장소를 설정해야합니다. 선택할 수있는 장비가 많이 있다는 것을 깨달았습니다. 서핑을 한 후 djangopypi2을 선택했습니다. 설치 지침이 가장 명확하고 프로젝트가 활성화되어 있기 때문입니다.djangopypi2에 대한 읽기 액세스를 어떻게 제한합니까?

나는 전에 장고를 사용 해본 적이 없으므로,이 질문은 실제로 장고 문제 일 수 있습니다. 지침을 따라이 명령을 사용하여 응용 프로그램을 시작했습니다.

$ gunicorn_django djangopypi2.website.settings 

저장소가 원하는대로 작동합니다. '~/.pypirc'를 구성한 후, 내가 사용 패키지를 업로드 할 수 있습니다 :

$ python setup.py sdist upload -r local 

그리고 '를 추가 인덱스-URL'와 '~/.pip/pip.conf'를 구성한 후 나는 사용하여 패키지를 설치할 수 있습니다

$ pip install <package-name> 

그러나 누구나 내 패키지를 찾아보고 다운로드 할 수 있습니다. 인증은 패키지 업로드에만 필요합니다. 나는 모든 페이지에 로그인이 필요하도록이 예제를 사용하여 시도 : Best way to make Django's login_required the default

을 그리고 설정이 :

LOGIN_REQUIRED_URLS = (
    r'/(.*)$', 
) 

LOGIN_REQUIRED_URLS_EXCEPTIONS = (
    r'/users/login(.*)$', 
    r'/users/logout(.*)$', 
) 

이제 그 부분은 예상대로 작동하도록 웹 GUI는 모든 페이지에 로그인을 필요로하지만, 내가 할 수 없습니다입니다 명령 줄에서 pip와 upload 유틸리티를 더 이상 사용하지 마십시오.

는이 같은 'pip.conf'에 추가 인덱스-URL 설정을 사용하여 'XXX를 설치 PIP'노력 :

extra-index-url = http://username:[email protected]:8000/simple/ 

하지만, '전혀 배포판 XXX을 찾을 수 없습니다'

말한다

'파이썬 setup.py의 sdist 업로드'제공 :

Submitting dist/xxx-0.0.1.tar.gz to http://127.0.0.1:8000/ 
Upload failed (302): FOUND 

그래서 질문, 어떻게 '/ 업로드를 등록있는 setup.py 파이썬' '핍'과에서 작동하도록 인증을 사용합니까입니까? 당신이 대신 액세스 제어를 사용하는에 실행하려면 로컬 호스트가 정말 있다면

+0

분명히 djangopypi2에는 읽기 액세스 제한이 구현되어 있지 않으며 곧 제공 될 기능은 아닙니다. https://github.com/popen2/djangopypi2/issues/12 – celtichindu

답변

0

, 나는 루프백 인터페이스에 gunicorn_django를 결합하는 것 :

gunicorn_django -b 127.0.0.1:80 djangopypi2.website.settings 

그런 식으로, 다른 기계는 서비스에 액세스 할 수 없습니다.

저는 삐삐를 얻을 수 있다고 의심합니다. this question을 참조하십시오.

+0

사실 저는 localhost에서 내가 작동하게되면 그것을 서버에 놓을 것입니다. 나는 지금 핍이 인증을 지원할 것 같아,이 페이지를보고있는 것 같다 : https://github.com/pypa/pip/issues/51 – celtichindu

0

내가 원하는대로 djangopypi2를 설정하지 못했습니다. 나는 PloneSoftwareCenter, mypypi, djangopypi, chishop, pypi-server, ClueReleaseManager, eggbasket 등과 같은 많은 다른 pypi 서버를 설치하려고 시도했다. 그러나 이들 중 하나는 설치가 실패했거나 의존성이 깨 졌거나, 나도 따라 할 수있는 설치 지침이나 사용 방법에 대한 설명서가 없기 때문에 나에게 맞는 간단한 솔루션을 만들었습니다.

내 파이썬 패키지를 게시하기위한 래퍼 스크립트를 사용하기 때문에 실제로 'python setup.py upload -r private'부분이 필요하지 않았습니다. 그래서 대신에 -p (private) 옵션을 스크립트에 추가했습니다.이 옵션은 단지 패키지를 빌드하고 scp가 내 서버의 packages 디렉토리에 있습니다.

pip 설치가 제대로 작동하도록하기 위해 나는 pip가 원하는 방식으로 패키지에 대한 링크를 생성하는 cgi 스크립트를 만들었습니다. 이 후, PIP에 대한 내 개인 저장소에서 설치하기 위해 설치, 난 그냥 내 pip.conf에 다음을 추가 : 이것은 나를 위해 작동

$ cat ~/.pip/pip.conf 
[global] 
extra-index-url = https://username:[email protected]/simple/ 

을, 그러나 같은 pypi 같은 인터페이스를 가지고 좋았을 것이다. python.org에서 액세스 할 수있는 모듈을 사용자에게 제한 할 수 있습니다. 그래서 누군가가 이와 같이 작동하는 기존의 pypi 서버 소프트웨어로 솔루션을 설정했다면 나는 여전히 관심을 가질 것입니다.