문제

에그 info 디렉토리가 각각의 모듈에 어떻게 연결되어 있는지 설명 할 수 있습니까? 예를 들어, 다음은 다음과 같습니다.

/usr/local/lib/python2.5/site-packages/quodlibet/
/usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/

Egg-Info 디렉토리가 해당 모듈을 Setuptools (Easy_install)에 보이게한다고 가정합니다. 그렇다면 SetUptools는 Egg-Info 디렉토리를 모듈 디렉토리에 어떻게 연결합니까?

내가 올바른 길을 가고 있다고 가정하고, 예를 들어 ... 세트 툴 툴에 기존의 내 패키지를 보이고 싶다면 모듈 디렉토리와 Egg-Info 디렉토리를 사이트에 동성애 할 수 있습니까? 패키지 디렉토리? 방금 이것을 직접 시도했지만 패키지가 SetUptools로 보이는지 테스트하는 방법을 잘 모르겠습니다. 보너스 포인트이 테스트하는 방법을 알려줄 수 있다면 :)

내가이 모든 것을 이해하려고하는 주된 이유는 내 모듈 중 일부를 사이트 패키지로 동성화하여 변경할 수 있고 스크립트를 다시 설치하지 않고 사용하는 스크립트에 변경 사항을 표시 할 수 있기 때문입니다. 각 변경 후 PYPI의 계란.

도움이 되었습니까?

해결책

.egg-info 디렉토리는-single-version-externally-mamaged가 계란을 설치하는 데 사용되는 경우에만 만들어집니다. "정상적으로"계란을 설치하면 코드와 메타 데이터가 모두 포함 된 단일 디렉토리 (또는 zip 파일)가 생성됩니다.

pkg_resources (메타 데이터를 읽는 라이브러리)는 기능이 있습니다. require 패키지의 특정 버전을 요청하는 데 사용할 수 있습니다. "구식"의 경우 정기적 인 가져 오기, Easy_Install은 .pth 파일을 해킹하여 계란 디렉토리를 sys.path로 가져옵니다. -single-version-externally-manged의 경우, 시스템의 Pacakging 인프라, 예를 들어 RPM 또는 DPKG에 의해 단일 버전 만 설치하기 때문에이 해킹은 필요하지 않습니다. 에그 info는 여전히 사용되는 응용 분야에 포함되어 있습니다. require (또는 다른 PKG_RESOURCES 바인딩 메커니즘).

하드 링크로 패키지를 설치하려면 "setup.py develop"을 사용하는 것이 좋습니다. 이것은 실제로 계란을 설치하지는 않지만 사이트 전체에서 사용할 수있는 SetUptools의 명령입니다. 이를 위해 PKG_RESOURCES가 찾을 수 있도록 Egg-Link 파일을 작성하고 .pth 파일을 조작하여 일반 가져 오기를 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top