특정 PyPI 패키지의 적절한 패키지 이름을 결정하는 방법은 무엇입니까?

특정 PyPI 패키지의 적절한 패키지 이름을 결정하는 방법은 무엇입니까?

Debian/Devuan 시스템에 Python 패키지 시스템을 설치하고 싶다고 가정해 보겠습니다. 일부 PyPI 패키지에는 리포지토리의 적절한 소스를 통해 사용할 수 있는 DEB 패키지가 있으며 패키지 이름 앞에는 python3-( 또는 python-Debian 버전에 따라 ) 접두사가 붙습니다. 하지만 – 모두가 그런 것은 아닙니다. 이제는 언제나 할 수 있어요나만의 DEB 패키지 실행, 하지만 - 내가 관심 있는 패키지가 다음과 같은지 어떻게 알 수 있나요?

  • 실제로 사라졌습니다.
  • 사용 가능하지만 다른 이름을 사용합니다(더 짧은 형식, 더 긴 형식, 이제 PyPI에서 변경된 레거시 이름 등).
  • 사용 가능하지만 다른 PyPI 패키지와 함께 번들로 제공됨

? 간단한 매핑 규칙이 있거나 PyPI 패키지 이름을 사용하여 쿼리하고 적절한 패키지 이름을 얻을 수 있는 곳이 있나요?

답변1

특정 Python 패키지와 일치하는 Debian 패키지를 찾는 가장 안정적인 방법은 후자를 가져오는 방법을 이해하는 것입니다. 예를 들어,팬더 데이터베이스import from pandasql; Debian 패키지에서 사용 가능하면 게시됩니다 /usr/lib/python3/dist-packages/pandasql.

그러한 패키지가 존재하는지 확인하려면, apt-file아직 존재하지 않으면 설치하고 다음을 질문하십시오.

sudo apt update
apt-file search /usr/lib/python3/dist-packages/pandasql

패키지가 있으면 apt-file해당 이름이 표시되고 아무것도 발견되지 않으면 패키지가 존재하지 않는 것입니다.

대부분의 경우 Python 바이너리 패키지는 모듈 이름을 반영해야 하지만몇 가지 주의사항과 함께:

모듈 바이너리 패키지foo모듈 이름이 허용한다면 이름을 지정하는 것이 좋습니다. 바이너리 패키지가 여러 모듈을 설치하는 경우에는 필요하지 않습니다. 이 경우 관리자는 패키지의 모듈을 가장 잘 나타내는 이름을 선택해야 합니다.python3-foo

패키지 이름 지정을 위해 모듈에 사용되는 이름은 와 함께 사용할 수 있는 이름입니다 . 이는 setuptools 와 파일 및 디렉터리 에 사용되는 이름과 반드시 ​​동일할 필요 import는 없습니다 . 예를 들어 에 설명된 모듈은 via 를 통해 사용되므로 해당 패키지 이름은 가 아닙니다 .PKG-INFO.egg-infopyxdg-*.egg-infoimport xdgpython3-xdgpython3-pyxdg

답변2

정직한 대답은 경험에 근거한 추측을 하거나 그 안에 있는 문서를 찾아야 한다는 것입니다. ("학습된 추측"에는 apt search …pypi 패키지 이름 사용과 같은 것이 포함됩니다)

그 안에 있는 파일을 확인하세요. 솔직히 저는 venv 설치를 수행하고 포함된 파일을 표시하도록 합니다. 그런 다음 중요해 보이고, 존재해야 하며, 충분히 고유한 특정 파일을 선택하고, 그러한 이름의 파일이 포함된 패키지가 무엇인지 데비안 패키징 인프라에 문의하세요. 예를 들어 sigmf패키지의 경우:

python3 -m venv temporary_venv
source temporary_venv/bin/activate
pip install sigmf
pip show -f sigmf

마지막 명령이 제공한 파일 목록에서 를 선택했습니다 sigmf/sigmffile.py. 해당 파일이 없으면 패키지가 완성되지 않을 것 같고 다른 곳에서 본 파일 이름도 아닙니다.

rm -rf temporary_venv( 이제 터미널을 닫아도 됩니다 . 다른 건 건드리지 않았습니다.)

그래서,

# apt-file might need to be installed first, `sudo apt install apt-file`
apt-file update
apt-file find sigmf/sigmffile.py

결과가 생성되지 않으므로 sigmf가 포함된 패키지가 없습니다.

관련 정보