파이썬은 패키지로 자신의 모듈을 작성합니다

함께 PyCon 및 아민에 사진을 잘하지 플라스크 튜토리얼 문서에서 모듈 아이디어로 포장 된이 프로젝트는, 당신은 더 많은 사람들의 일을 볼 수 없습니다. 그 다음 프로젝트를 가져 어디서나 수 있도록, 또는으로 할 수 있도록 패키지에 포장 된 플라스크 프로젝트의 일부가 될 수있는 프로젝트 문서의 설치를 볼 수 있습니다 관심 pip install youproject.whl종속성을 설치 한 후 설치하는 프로젝트의 방법입니다.
공식 포장 지침에서 수 언뜻 : 점프

1.setuptools 프로필

setuptools그것은이다 distutils(자기 바이두) 향상된 버전. 그것은 더 나은 개발자가 파이썬 패키지를 생성하고 배포하는 데 도움이, 많은 기능을 확장했다. 대부분의 사용자는 파이썬 setuptools에 고급 모듈을 사용합니다.

2. 패킷 포맷

파이썬 라이브러리 패키지 형식은 바퀴와 계란을 포함한다. 휠 형식은 2012 년 PEP427에 의해 정의되는 동안 계란 형식은 setuptools에 의해 2004 년에 도입되었다. 계란은 설치와 사용이 휠은 테스트를 완료하고 배포 전에 구축해야한다, 다시 구축 할 필요가 컴파일되지 않습니다. 이제 널리 사용되고 Wheel이상

3.setup.py 파일

from setuptools import find_packages, setup

setup(
    name='flaskr',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)
相关参数可以[查看](https://setuptools.readthedocs.io/en/latest/setuptools.html#metadata)

공통 매개 변수 설명 :

매개 변수 이름 설명
이름 패키지 이름
번역 패키지 버전
저자 저자 프로그램
작성자 이메일 프로그램의 전자 메일 주소의 저자
메인테이너 수비수
maintainer_email 수비수 메일 주소
URL 이 프로그램의 공식 웹 사이트 주소
특허 프로그램 인증 정보
기술 프로그램에 대한 간략한 설명
긴 설명 프로그램의 상세한 설명
플랫폼 절차 적용 가능한 소프트웨어 플랫폼 목록
분류 프로그램의 종류 목록이 속한
키워드 프로그램의 키워드 목록
패키지 패키지 디렉토리 (포함 일반적으로 해결해야 할 초기화 폴더 평 파일)
py_modules 파이썬 패키지는 단일 파일 목록이 필요합니다
DOWNLOAD_URL 프로그램을 다운로드
cmdclass 사용자 정의 명령 추가
package_data 지정된 데이터 파일 캡슐 포함 할 필요가
include_package_data 자동으로 모든 버전 (CVS / SVN / 자식) 캡슐화 된 데이터 파일을 포함
exclude_package_data include_package_data에 해당하는 경우이 옵션은 일부 파일을 제외하는 데 사용됩니다
데이터 파일 등 사진, 프로필, 같은 데이터 파일을 포장 할 때 포장해야
ext_modules 지정 확장 모듈
스크립트 지정된 실행 스크립트는 설치 스크립트는 시스템 경로에 설치됩니다.
package_dir 소스 패키지에 매핑되는 디렉토리에서 지정하는 파일
필요 따라 다른 패키지를 지정합니다
제공 지정하는 모듈 의존에 제공 될 수있다
install_requires 설치는 설치 종속성을 필요로하는 경우
entry_points 서비스 및 플러그인의 동적 발견, 아래에서 자세히 이야기
setup_requires 자체 패키지를 의존하는 setup.py 파일을 실행하도록 지정
dependency_links 다운로드의 종속성을 지정
extras_require 고급 / 추가 기능은 현재 패키지 번들에 의존 할 필요가
zip_safe 압축하지만, 디렉토리의 형태로 설치되지 않음

3.1. find_packages (여기서 = '제외 = ()를 포함 = ('* '))

상기는 setup.py사용 find_packages()우리가 쉽게 패키지를 수동으로 추가 할 필요가 없습니다 추가 할 수 있습니다. 기본 검색 setup.py각이있는 같은 디렉토리에 __init__.py패키지와 같은 디렉토리를 추가 할 수 있습니다.

함수의 첫 번째 매개 변수는 디렉터리 검색 패키지 매개 변수를 지정하는 데 사용됩니다 exclude, 제외 할 패키지를 지정하는 데 사용 include포함 할 패키지를 지정합니다.

3.2. include_package_data :

True로 설정, 패키지는 자동으로 파일 사용, 제어 버전을 추가 할 필요가없는 경우 수신 버전 제어 데이터 파일을 추가합니다 package_data.

3.3manifest.in 파일합니다 (setup.py 같은 디렉토리에)

文件内容就是需要保护在分发包中的文件

include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

复制所有 statictemplates 文件夹中的文件,schema.sql文件,但是排除所有字节文件。

3.4. zip_safe

zip_safe 参数决定包是否作为一个zip压缩后的 egg 文件安装,还是作为一个以 .egg 结尾的目录安装。因为有些工具不支持 zip 压缩文件,而且压缩后的包也不方便调试,所以建议将其设为 False,即 zip_safe=False

3.5. install_requires

如果你的包依赖于其他包,可以指定install_requires参数,为一个列表

install_requires=[
    'requests>=1.0',
    'flask>=1.0'
]

默认从pypi下载安装指定依赖包,也可以指定链接下载依赖

dependency_links = [
    "http://packages.example.com/snapshots/foo-1.0.tar.gz",
    "http://example2.com/p/bar-1.0.tar.gz",
]

4.本地测试安装

pip3 install -e .

在当前文件夹中寻找setup.py并在开发模式下安装,安装好后通过pip list即可查看本地安装的情况。换个文件夹开始导入你的包进行测试,是否可以正常使用。

5.构建发行文件

先安装好wheel
pip3 install wheel

安装好后,执行bdist_wheel构建发行文件

python3 setup.py bdist_wheel

会生成dist目录,下面有一个flaskr-1.0.0-py3-none-any.whl类似的由项目名称、版本号和项目安装要求的标记组成。复制该文件到别的计算机,通过pip命令安装该文件。

6.发布包(简略)

如果要将包发布到PyPI(Python Package Index)官方维护的第三方包仓库,需要先注册pypi的账号,然后创建~/.pypirc文件进行一些配置

[distutils]
index-servers = pypi

[pypi]
username:xxx
password:xxx

注册项目
python3 setup.py register
成功注册后,构建源码包发布
python3 setup.py sdist upload

最后的最后,别忘了README.mdLICENSE,最好再加上requirements.txt,可以参考文章开头官网的打包流程

추천

출처www.cnblogs.com/mangM/p/11619247.html