>백엔드 개발 >파이썬 튜토리얼 >Python 패키지 사용 살펴보기

Python 패키지 사용 살펴보기

WBOY
WBOY원래의
2023-09-02 12:25:071281검색

探索 Python 包的使用

Python 패키지를 사용하면 대규모 시스템을 분할하고 모듈을 일관된 방식으로 구성하여 자신과 다른 사람이 효율적으로 사용하고 재사용할 수 있습니다. Python의 "배터리 내장"이라는 모토는 표준 라이브러리에 많은 유용한 패키지가 사전 설치되어 제공된다는 의미입니다.

그러나 다양한 놀라운 타사 소프트웨어 패키지를 활용할 수도 있습니다. 이 튜토리얼에서는 패키지가 정확히 무엇인지, 패키지에서 모듈을 가져오는 방법, Python 표준 라이브러리에 내장된 패키지를 탐색하고 타사 패키지를 설치하는 방법에 대해 알아야 할 모든 것을 배웁니다.

가방이란 무엇인가요?

패키지에 대해 이야기하기 전에 먼저 모듈에 대해 이야기해보겠습니다. 모듈은 귀하(및 다른 사람들)가 프로그램을 구성하는 함수와 클래스를 배치하는 *.py 확장자를 가진 소스 파일입니다.

Python의 패키지는 여러 Python 파일을 포함하는 폴더일 뿐이며, 비어 있거나 실행 가능한 코드를 포함할 수 있는 하나의 __init__.py 文件。 __init__.py 文件表明该目录是一个包。 __init__.py 파일이 있어야 합니다.

패키지는 Python의 계층적 네임스페이스 개념을 구현한 것입니다. Zen of Python 인용:

"네임스페이스는 좋은 아이디어입니다. 더 많이 활용해 보겠습니다!"
전체 Python Zen을 보려면 Python 대화형 세션에서

를 입력하세요. import this 으아아아 ​

네임스페이스는 코드를 구성하고 이름 충돌을 방지하는 데 도움이 됩니다. 이는 여러 사람이 함께 작업하거나 다른 사람이 개발한 패키지를 사용할 때 중요합니다.

패키지는 하위 패키지와 모듈(파일)의 계층 구조를 나타내지만 계층 구조는 패키지와 하위 패키지가 디렉터리와 하위 디렉터리인 파일 시스템을 기반으로 할 필요는 없습니다. 그것보다 훨씬 더 유연합니다.

Python 패키지 만들기

간단한 예부터 시작해 보겠습니다. 아래에는 두 개의 Python 모듈이 포함된

라는 패키지가 있습니다. simple_package 으아아아

  • __init__.py: 패키지임을 나타냅니다
  • tasks.pyviews.py 는 모듈입니다.
타사 소프트웨어 패키지

ansible이라는 패키지를 살펴보겠습니다. 표준 라이브러리의 패키지가 아닙니다. 나중에 타사 패키지를 찾아 설치하는 방법을 살펴보겠습니다. 이제 디렉터리 파일 구조를 살펴보겠습니다.

이러한 패키지는 일반적으로 Python 인터프리터의 사이트 패키지 디렉터리(버전, 운영 체제 및 배포판에 따라 다름) lib 아래에 설치됩니다.

예를 들어 Mac에서 Python 3.10은 /lib/python3.10/site-packages에 있습니다. ansible 패키지 구성 방법은 다음과 같습니다. 으아아아 ​

6개의 모듈과 18개의 디렉토리가 있습니다. 각 디렉토리는 기본 ansible 패키지의 하위 패키지입니다.

ansible/utils 디렉토리를 보면 여기에 다른 모듈과 하위 패키지도 포함되어 있음을 알 수 있습니다. 으아아아 ​

검색 경로

모듈을 가져오면 Python은 검색을 시작할 디렉터리 목록인 검색 경로를 기반으로 검색 알고리즘을 수행합니다. 검색 경로는

를 통해 사용할 수 있는 디렉터리 목록이며 이를 동적으로 조작할 수 있습니다(검색 경로의 항목 추가, 삭제 또는 이동). site-packages 디렉터리는 항상 존재합니다. sys.path

ansible/utils

에서 path.py 모듈을 가져오려면 다음 명령을 사용해야 합니다. 으아아아

모듈을 가져오려면 다음 명령을 사용하세요:

으아아아 pathencrypt표준 os.path 모듈도 사용하려면 다음 명령을 사용하세요.

으아아아

이제 속한 네임스페이스로 인해 충돌하지 않고 경로 모듈 중 하나 또는 둘 다를 사용할 수 있습니다.

표준 라이브러리 탐색

표준 라이브러리에는 많은 패키지가 있습니다. 작업을 완료해야 하지만 방법을 잘 모를 때마다 탐색해 볼 가치가 있습니다. 수학, 셸 통합, 운영 체제 통합, 문자열 조작, 네트워킹 및 일반적인 파일 형식과 같은 일반적인 작업의 경우 표준 라이브러리에는 잘 설계되고 성능이 뛰어나며 잘 테스트된 패키지가 있을 가능성이 높습니다.

표준 라이브러리에 들어가는 것은 큰 일이기 때문에 표준 라이브러리 패키지를 정말 신뢰할 수 있습니다. 이 패키지는 핵심 Python 개발자가 설계했거나 표준 라이브러리로 만들기 전에 제3자 라이브러리로 현장에서 철저히 조사되고 많이 사용되었습니다.

다음은 주제별로 정리된 표준 라이브러리의 모든 패키지입니다.

PyPI

표준 라이브러리는 훌륭하지만 표준이 아닌 필요한 특수 기능이 있는 경우가 많습니다. 그렇다고 처음부터 작성해야 한다는 의미는 아닙니다. Python에는 많은 양의 코드를 무료로 개발하고 공유하는 활기차고 활동적인 커뮤니티가 있습니다. PyPI: Python 패키지 색인을 입력하세요. PyPI는 공개적으로 사용 가능한 모든 소프트웨어 패키지를 호스팅하고 이를 검색할 수 있는 원스톱 상점을 제공합니다.

浏览 PyPI

PyPI 将包组织在可浏览的索引中。您可以按主题、环境、框架、开发、状态、目标受众、许可证、自然语言、编程语言(是的,有支持多种编程语言的 Python 包)和操作系统来浏览和搜索。

截至 2021 年,PyPI 不再显示软件包的下载统计信息,因为维护统计信息所需的资源导致其效率低下。

安装软件包

有两种方法可以从 PyPI 安装软件包。您可以下载该软件包,然后运行 ​​python setup.py install。但现代的方法是使用 pip、setuptools 和wheel。

从 Python 3.4 和 Python 2.79 开始默认包含 Pip 和 setuptools,但您需要升级到最新版本:

  • Linux/macOS:pip install -U pip setuptools
  • Windows:python -m pip install -U pip setuptools
但是,不再支持 Python 2,因此您应该已经使用 Python 3.0 或更高版本来提高性能。

使用pip安装wheel:

pip install wheel.

要使用 pip 安装软件包,请发出此命令。

pip install <package_name>

其中 package_name 是包的名称。例如,要安装 Ansible,命令如下所示:

pip install ansible

如果需要特定版本,也可以指定如下:

pip install ansible==7.0

Python 包始终安装到环境中。我在这里不会介绍的一种常见做法是使用虚拟环境来管理具有不同解释器和/或不同安装包集的多个独立的 Python 安装。您可以在此处阅读有关虚拟环境的更多信息。

最佳实践

Python 打包权威提供了大量有关打包最佳实践的指导。这很重要,因为这是一个正在积极开发的领域,并且建议会快速发展。

此外,如果您想做一些特别的事情,例如从替代存储库而不是 PyPI 安装软件包或以更复杂的方式使用 pip,您会发现精彩的讨论和实用的建议。

结论

当您是 Python 初学者时,您会学习核心语言并享受使用它的乐趣。很快您就会发现标准库,并且随着您获得更多经验,您会从它的丰富性中受益越来越多。

作为 Pythonista,您发展的下一阶段是将 Python 社区在 PyPI 上带来的巨大优势融入到您的系统中。包作为可重用 Python 代码的部署单元使这个生态系统得以实现。

위 내용은 Python 패키지 사용 살펴보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.