python 패키지 도구 distutils,setuptools 분석
6702 단어 distutilspythonsetuptools포장 도구
소스 패키지:python setup.py install온라인 설치:pip install 패키지 이름(linux)/easyinstall 패키지 이름(window)python 패 키 지 는 개발 에서 흔히 볼 수 있 습 니 다.일반적인 사용 패 키 지 는 모든 기능 이 python 모듈 패 키 지 를 만 들 고 포장 모듈 을 만 든 다음 에 발표 하고 설치 하 는 것 입 니 다.포장 과 설치 가방 은 가장 흔히 볼 수 있 는 일이 다.학습 중 distutils 와 setuptools 두 가지 포장 도 구 를 만 나 학습 후 필기 기록 을 합 니 다.
distutils
distutils 는 python 표준 라 이브 러 리 의 일부분 입 니 다.이 라 이브 러 리 의 목적 은 개발 자 에 게 편리 한 포장 방식 을 제공 하 는 동시에 사용자 에 게 편리 한 설치 방식 을 제공 하 는 것 입 니 다.우리 가 자신의 모듈 을 개발 한 후에 distutils 의 setup.py 로 포장 합 니 다.
완료 기능 python
hello.py
def hello_fun():
print "i say hello to you"
2.setup.py 파일 만 들 기setup.py
from distutils.core import setup
setup(
name="hello_module",
version="1.0",
author="ljk",
author_email="[email protected]",
py_modules=['hello'],
)
3.포장 명령 실행
현재 디 렉 터 리 아래 에 자동 으로 폴 더 dist 가 생 성 되 었 습 니 다.폴 더 에 압축 패키지 가 있 습 니 다.즉,대상 파일 입 니 다.또 하나의 기록 파일 이 있 습 니 다.MANIFEST.4.설치 모듈
hello_module-1.0.tar.gz 는 생 성 된 python 모듈 입 니 다.내 python 가상 환경 으로 전환 하여 이 모듈 을 설치 합 니 다.
이 모듈 을 설치 합 니 다.경 로 를 통 해 알 수 있 듯 이 이 모듈 은 표준 라 이브 러 리 의 제정 경로 에 설치 되 어 있다.
5.사용 모듈
모듈 을 설치 한 후 python 의 상호작용 환경 에서 모듈 을 가 져 옵 니 다.모듈 은 hello.py 파일 입 니 다.hello.py 파일 의 hello 를 참조 하 십시오.fun()함수.
setuptools
setuptools 는 distutils 의 증강 판 입 니 다.setuptools 에는 entry 가 있 습 니 다.points 기능 은 매우 편리 합 니 다.Liux 와 같은 서 비 스 를 시작 합 니 다.예 를 들 어 Liux 명령 줄 에서 fireforx 는 불 여우 브 라 우 저 를 시작 할 수 있 습 니 다.
우선 설치 되 지 않 았 는 지 확인 하기 전에 명령 path 가 작 동 하지 않 습 니 다.
1.기능 팩 만 들 기
폴 더 demo 를 만 들 고 폴 더 에 get 을 만 듭 니 다.path.py 와init__.py 두 파일.get_path.py 는 기능 함수,init__.py 는 가방 의 표지 파일 입 니 다.
get_path.py
import os
def fun():
print "i am in the path:"
print os.getcwd()
2.setup.py 파일 설정setup.py 파일 을 만 들 고 필요 한 포장 정 보 를 작성 합 니 다.
setup.py
#-*- encoding: UTF-8 -*-
from setuptools import setup
setup(
name = "demo", #
version = "0.1", #
packages = ['demo'], #
include_package_data=True, #
zip_safe=True, # ,
install_requires = [ # ( )
'docutils>=0.3',
'requests',
],
# path
# , path get_path.py fun
entry_points={
'console_scripts':[
'path = demo.get_path:fun'
]
},
)
<br data-filtered="filtered"><br data-filtered="filtered">
설정 에서 이 모듈 에 필요 한 의존 도 를 모두 기록 하고 설치 할 때 지정 한 주 소 를 다운로드 합 니 다.이런 방식 은 사용 시의 설치 과정 을 간소화 하 였 으 나 아직 좋 지 않다.가장 좋 은 방법 은 pip 의 자동 다운로드 입 니 다.포장
포장 후 두 개의 폴 더 를 더 내 면 각각 demo.egg-info 와 dist 입 니 다.demo.egg-info 는 필요 한 설치 정보 이 고 dist 의 압축 패 키 지 는 설치 패키지 입 니 다.
dist/demo-0.1.tar.gz 압축 해제 후의 파일 을 봅 니 다.
4.패키지 설치
사용 가방
설치 후 명령 줄 에 path 를 직접 입력 하면 돌아 오 면 get 호출 을 볼 수 있 습 니 다.path.py 의 함수 fun(),출력 문자열.
가 져 와 서 사용 할 수도 있 습 니 다.
setuptools 의 진급 사용
위 에서 setuptools 를 사용 할 때 설정 파일 setup.py 로 포장 정 보 를 간단하게 작성 합 니 다.실제 개발 환경 에 서 는 여러 파일 이 협조 하 는 경우 가 많다.openstack 의 포장 을 예 로 들 면.openstack 에 Pbr 관리 도 구 를 도입 하 였 습 니 다.
pbr 는 setuptools 의 보조 도구 로 처음에 openstack 개발 을 위해 d2to 1 을 기반 으로 합 니 다.Pbr 는 setup.cfg 의 내용 을 읽 고 걸 러 낸 다음 에 분 석 된 데 이 터 를 setup.py 에 매개 변수 로 제공 합 니 다.
setup.cfg 는 setup.py 의 기본 인 자 를 제공 하 는 동시에 수정 하기 쉽 습 니 다.Setup.py 는 setup.cfg 파일 을 분석 한 다음 명령 을 수행 합 니 다.다음 기능 포함:
1.git 에서 Version,AUTHORS,ChangeLog 정 보 를 가 져 옵 니 다.
2、SphinxAutodoc。pbr 는 procject 를 스 캔 하여 모든 모듈 을 찾 아 stubfiles 를 생 성 합 니 다.
3、Requirements。requirements.txt 파일 을 읽 고 setup 함 수 를 만 들 려 면 패키지 에 의존 해 야 합 니 다.
4、long_description。README.rst,README.txt 또는 READMefile 에서 log 생 성description 파라미터
Pbr 의 파일 은 매우 간단 합 니 다.아래 와 같 습 니 다.설정 후 디 렉 터 리 에 있 는 setup.cfg 파일 을 자동 으로 찾 습 니 다.파일 파 라 메 터 를 분석 하여 setup.py 에 사용 합 니 다.
setup.py
from setuptools import setup
setuptools.setup(
setup_requires=['pbr'],
pbr=True)
setup.cfg
[metadata]
name= keystone
version= 2015.2
summary= OpenStack Identity
description-file=
README.rst
author= OpenStack
author-email= [email protected]
home-page= http://www.openstack.org/
classifier=
Environment:: OpenStack
IntendedAudience :: Information Technology
IntendedAudience :: System Administrators
License:: OSI Approved :: Apache Software License
OperatingSystem :: POSIX :: Linux
ProgrammingLanguage :: Python
ProgrammingLanguage :: Python :: 2
ProgrammingLanguage :: Python :: 2.7
[files]
packages=
keystone
[global]
setup-hooks=
pbr.hooks.setup_hook
[egg_info]
tag_build=
tag_date= 0
tag_svn_revision= 0
[build_sphinx]
all_files= 1
build-dir= doc/build
source-dir= doc/source
[compile_catalog]
directory= keystone/locale
domain= keystone
총결산위 에서 말 한 것 은 소 편 이 소개 한 python 포장 도구 distutils,setuptools 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
파이썬을 사용하여 10진수를 bin, 8진수 및 16진수 형식으로 변환하는 방법은 무엇입니까?텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.