Я размещаю код Python на github, а затем публикую пакет в Pypi.Обычные шаги операции — отправить обновленный код на github, а затем вручную обновить пакет до pypi, что довольно громоздко, поэтому я подумал об использовании github + travis. -ci для создания автоматизированной среды развертывания.
зарегистрировать pypi
доступpypi.orgнажмитеRegister
Зарегистрируйте учетную запись и запомните свое имя пользователя и пароль.
Создайте файл setup.py
Файл setup.py находится в корневом каталоге пакета.Содержимое примера выглядит следующим образом:
#!/usr/bin/env python
from setuptools import setup, find_packages
with open("README.md", "r") as fh:
long_description = fh.read()
with open('requirements.txt') as f:
requirements = [l for l in f.read().splitlines() if l]
setup(name="python-weixin", # 项目名
version="0.3.2", # 版本号
description="Python Weixin API client support wechat-app", #简介
long_description=long_description, # 长简介 这里使用的 readme 内容
long_description_content_type="text/markdown",
license="BSD", # 授权
install_requires=requirements, # 依赖
author="gusibi", # 作者
author_email="xxx@gmail.com", # 邮箱
url="https://github.com/gusibi/python-weixin", # 地址
download_url="https://github.com/gusibi/python-weixin/archive/master.zip",
packages=find_packages(),
keywords=["python-weixin", "weixin", "wechat", "sdk", "weapp", "wxapp"],
zip_safe=True)
Особого внимания заслуживаетpackages
Параметр используется для объявления каталогов, которые будут включены в ваш пакет.Здесь setuptools используется для автоматического определения, какие пакеты включать.
Настроить travis-ci
github предоставляет множество способов интеграции, здесь мы выбираем Travis-ci
Доступ после выбораtravis-ci.com/profile, если вы впервые используете travis-ci, вы можете использовать учетную запись github для входа в систему, а затем выбрать соответствующую библиотеку github для активации.
Затем в корневой каталог кодовой базы github добавьте.travis.yml
документ.
language: python
python: # 指定运行环境,这里会分别在 2.7 和 3.5 运行
- '2.7'
- '3.5'
install:
- pip install -r requirements.txt # 安装依赖
script: python test_example.py # 如果有单元测试这里应该执行单元测试
script является обязательной командой, обычно, если есть модульный тест, модульный тест должен быть выполнен здесь
Добавить конфигурацию развертывания Pypi
в.travis.yml
Добавьте модуль развертывания вTravis CI
добиться автоматического развертывания,
language: python
python:
- '2.7'
- '3.5'
install:
- pip install -r requirements.txt
script: python test_example.py
deploy:
provider: pypi
user: goodspeed # pypi 用户名
password: password # pypi 密码
on:
python: 2.7
tags: true
branch: master
существуетdeploy
раздел, мы указываемprovider
для pypi, затем добавьтеuser
,password
.
существуетon
мы объявляем некоторую специальную конфигурацию, такую как:
-
brance: master
Это означает, что только основная ветвь будет выполнять развертывание пакета. -
python: 2.7
Это означает, что развертывание пакета выполняется только в версии python 2.7. -
tags: true
Это означает, что развертывание пакета выполняется только при выпуске новой версии.
Конкретная ссылка на конфигурацию:Conditional-Releases-with-on
зашифрованный пароль
В приведенной выше конфигурации используется пароль в виде открытого текста, который раскрывает учетную запись pypi, что слишком небезопасно. Рекомендуется здесьtravis-encrypt
Зашифрованный пароль.
Установить трэвис-шифровать
pip install travis-encrypt
затем в.travis.yml
Выполнить в каталоге:
travis-encrypt --deploy gusibi python-weixin .travis.yml
Password: # 在这里输入pypi 密码
здесь
gusibi
python-weixin
Его необходимо заменить соответствующим именем пользователя и репозиторием github.Ссылка на команду:travis-encrypt
После выполнения часть пароля будет заменена зашифрованным секретным ключом, и, наконец,.travis.yml
Содержание следующее:
language: python
python:
- '2.7'
- '3.5'
install:
- pip install -r requirements.txt
script: python test_example.py
deploy:
provider: pypi
user: goodspeed
password:
secure: cjQdXGKkNpwKmGgEhONtd2YR+PF44gtZgMegv5O3CRsszocaRqxcBdfwi0qz6KupLMWl/WTq+bYtzf42lpytMe7cB/CPA2sCUDEo6qyIE+Brb5J57GUhd9HIhP5F44BHKWzBnYFbgPsQ2k1ckEDJsUp5yyFvUBkQmv3+LOo9Kf492oCQlgnzaGSRtPQaG56XdLKgCZrxdtfteTalTbjQO7w/GNm5lBn4l7iY1qWiQmzFxkUuZu317yAnohdH84fq9Ozov4S3nPNSTt800HjHkXwaBzxMuJ2SJBadZAW/abCvk34IPyvxjy7upNNLq80/yvgYKzxWBklcP9LxJX2Pwk9NtTY1zUEykkwdBVxZShhBXtWDma/yWQp2RdCVZtLS4GTg4X61PMgH0iwzwzGW8LARj2ZMowQoPipUYCJ7qUfyXrxU05ypizWKIIfrqdRh8Twj9Jhyg/fAoRygCoXNtMqwSmomjkwl6f1i+6lAQENdmVKQTesP56r/olXKb4rhrOgyhj7anJd3F/SZ+g8jQFHHGLcaSkEoVXL6BFPDMxYdMRmx5HKonP9uQO74ZdeevkHK0wFzSbjqpKdVzeuYuyPiHnDyooyjGL+2BzE/Zzo5KCNEflAE22kAuAbjXCuJji7+j47QohrlYjmj2+F7NDBE5sJRp3yLJWIEPqLND/k=
on:
python: 2.7
tags: true
branch: master
После отправки кода зайдите на travis-ci.org, и вы увидите, что ci запущен и строится:
Одновременно создаются два задания: среда python2.7 и среда python3.5.
Но на данный момент пакет не развернут в pypi, и необходимоgithub releases 页面重新发布一个版本来触发部署
.
Ссылка на ссылку
- [https://github.com/romgar/5minutes/blob/master/content/articles/howto-deploy-python-package-on-pypi-with-github-and-travis.md][https://github.com/romgar/5minutes/blob/master/content/articles/howto-deploy-python-package-on-pypi-with-github-and-travis.md]
- pypi.org
- GitHub.com/goosby/friends после прослушивания...
- leathercoat.org/project/ вдруг…
- docs.Travis-this.com/user/deploy…
Наконец, поблагодарите мою девушку за ее поддержку и терпимость, чем ❤️
Вы также можете ввести следующие ключевые слова в официальном аккаунте, чтобы получить исторические статьи:公号&小程序
| 设计模式
| 并发&协程
| note