처음 pypi 패키지를 만드는 과정을 기록합니다
준비 작업
1. 프로젝트 폴더 만들기
mkdir dada_openapi_python
cd dada_openapi_python
2. 패키지 폴더 만들기
안에
dada_openapi_client
폴더를 만들고 있습니다. 이 폴더의 이름은 일부러 상위 디렉터리와 다르게 만들었습니다. 오해를 피하기 위해서 이 폴더는 사실 패키지 이름입니다.mkdir dada_openapi_client
cd dada_openapi_client
3. 패키지 코드 작성
각자의 업무 장면에 근거하여 나는 다음에 내가 쓴 다다를 열거한다client
PyPI 패키지 만들기
이제 프로젝트 논리가 완성되었으니 PyPI 패키지를 만들어 보도록 하겠습니다.
1. setup을 생성합니다.py 파일
dada_openapi_python
폴더에 프로필setup.py
을 만들고 프로필을 작성하고 제 프로필을 붙여주세요.#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/1/6 15:41
# @Author : Weiqiang.long
# @Site :
# @File : setup.py
# @Software: PyCharm
# @Description:
import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setuptools.setup(
name = "dada_openapi_client",
version = "1.0.3",
author = "Weiqiang.long",
description = " ",
long_description = long_description,
long_description_content_type="text/markdown",
url = "https://github.com/longweiqiang/dada_openapi_python",
packages = setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
)
위 구성의 각 필드의 구체적인 의미는 홈페이지 문서의 2.8가지 설명을 참조할 수 있다
포장하다
다다에서openapi_python 폴더에서 이 명령을 실행합니다
python setup.py sdist bdist_wheel
업로드
python -m twine upload dist/*
Uploading distributions to https://upload.pypi.org/legacy/
Uploading dada_openapi_client-1.0.3-py3-none-any.whl
100%|████████████████████████████████████████████████████
███████████████| 7.88k/7.88k [00:00<00:00, 10.6kB/s]
Uploading dada_openapi_client-1.0.3.tar.gz
100%|████████████████████████████████████████████████████
███████████████| 6.23k/6.23k [00:01<00:00, 4.43kB/s]
이 가능하다, ~할 수 있다,...
Upload failed (403): Invalid or non-existent authentication information.
잘못된 사용자 인증 정보입니다. 사용자 인증 파일을 만들어야 합니다.
~/.pypirc
사용자 인증 파일 만들기 ~/.pypirc 사용자 디렉터리에 새 공백 파일의 이름을 입력하십시오.pypirc, 내용은 다음과 같습니다.
[distutils]index-servers=pypi
[pypi]repository = https://upload.pypi.org/legacy/
username = XXX
password = XXX
Upload failed (403): You are not allowed to edit 'xxx' package information
가방을 먼저 등록해야 업로드를 시작할 수 있어요.
Server response (401): Incomplete registration; check your email
PyPI 계정이 메일박스 검증을 완료하지 않았습니다. 메일박스에 등록해서 검증 메일을 찾은 다음 실패한 절차를 다시 시도해야 합니다.
Server response (400): Invalid classifier "Topic :: Software Development :: Utilities"
너의 setup.py 파일의classifier 정보가 잘못되었으니 홈페이지의 정확한 분류에 따라classifier를 작성하십시오.
error: No dist file created in earlier command
너 포장도 안 하고 명령 올리기 시작했어.
Upload failed (400): File already exists
파일이 이미 존재합니다. 지난번에 버전 번호를 업데이트해야 합니다.
참조 문서:
https://packaging.python.org/tutorials/packaging-projects/https://segmentfault.com/a/1190000008663126 http://xiaoh.me/2015/12/11/python-egg/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.