IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> pip打包 -> 正文阅读

[开发工具]pip打包

增加setup.py 文件
setuptools文档
setup.py样例

from setuptools import setup, find_packages

def sh(command):
    try:
        if isinstance(command, list):
            command = ' '.join(command)
        return subprocess.check_output(
            command, shell=True,
            stderr=subprocess.STDOUT).decode('utf-8').rstrip()
    except Exception as e:
        return None

VERSION = 'major.minor.patch' 
git_branch = sh('git rev-parse --abbrev-ref HEAD')
git_commit_hash = sh('git log -1 --format=%h')
git_commit_count = sh('git rev-list --count HEAD')
git_diff_name_only = sh('git diff --name-only')
if git_diff_name_only:
    git_diff_name_only = git_diff_name_only.replace('
', ',')

# this is a hack, the easiest way I found to inject these metedata
with open('worker_io/version.py', 'w') as f:
    f.write(f'# DO NOT EDIT THIS FILE, IT IS GENERATED BY SETUP.PY
')
    f.write(f'__version__ = "{VERSION}"
')
    f.write(f'git_branch = "{git_branch}"
')
    f.write(f'git_commit_hash = "{git_commit_hash}"
')
    f.write(f'git_commit_count = {git_commit_count}
')
    f.write(f'git_diff_name_only = "{git_diff_name_only}"
')

#  获取当前打包文件的依赖 建议通过读取requirements.txt 来实现确保更新后打包的依赖及时更新
with open('requirements.txt') as f:
    lines = f.readlines()
install_requires = [
    line.strip() for line in lines if line and not line.startswith('--')
]

setup(
    # 这里列举部分 keywords 如有需要 https://setuptools.readthedocs.io/en/latest/references/keywords.html
    name=PACKAGE_NAME,
    version=VERSION,
    keywords=KEYWORDS, # package 关键字和package相关即可
    description=DESCRIPTION, # package 功能描述
    url=URL, # 可增加package confluence说明页面
    author='HDMap Platform R&D',
    author_email='hdmap-platformrnd-group@momenta.ai',
    packages=find_packages(), # 如果含有多个子目录,需要指定多个子目录。like packages=[ditu.inspect, ditu]
    platforms='any',
    zip_safe=False,
    install_requires=install_requires,
    python_requires='>=3', # 对所需python版本进行限制
)

Makefile

all:
	@echo nothing special

lint:
	python3 -m mdk_tools.cli.py_lint .

prepare:
	python3 -m pip install -r requirements.txt --user

install:
	@cp pre_commit.sh .git/hooks/pre-commit || true
	@python3 setup.py install --user

upload:
	python3 setup.py bdist_wheel upload -r local
package:clean prepare
	python3 setup.py bdist_wheel

install: package
	python3 -m pip install dist/*.whl -U --force-reinstall
clean:
	rm -rf build
	rm -rf dist
	rm -rf *.egg-info
	rm -rf __pycache__
	rm -rf tests/__pycache__
	rm -f *.pyc

DOCKER_BUILD_TAG := artifactory.momenta.works/docker-momenta/ubuntu1604-python36:v0.0.1
docker_test_build:
	docker run --rm -v `pwd`:/workdir \
		-it $(DOCKER_BUILD_TAG) zsh

DOCKER_RELEASE_TAG := artifactory.momenta.works/docker-momenta/smpy:v1.6.5
docker_build:
	docker build --tag $(DOCKER_RELEASE_TAG) .
docker_push:
	docker push $(DOCKER_RELEASE_TAG)
docker_test_release:
	docker run --rm -v `pwd`:/workdir -it $(DOCKER_RELEASE_TAG) zsh

Makefile 中增加以下命令

package: # 打包当前项目
    python3 setup.py bdist_wheel
package_install: package # 打包并在本机安装当前项目
    python3 -m pip install dist/*.whl -U
upload: # 上传当前项目至artifactory
    python3 setup.py bdist_wheel upload -r local
clean:
    rm -rf __pycache__ dist *.egg

https://artifactory.momenta.works/ui/repos/tree/General/pypi-momenta
点击右上方登录,输入账号密码,然后点击 Set Me Up,然后参考下面的文档把账户密码存下来。
配置账户密码
在 .bashrc 或 .zshrc 中添加账户密码的环境变量

export ARTIFACTORY_USERNAME=***
export ARTIFACTORY_PASSWORD=***

其中 *** 是从页面拷贝过来的字符串(注意账户密码会过期)
上传 pip 包配置 pypirc
如果需要上传 pip,可以配置 pypirc:
配置.pypirc→ 需要放到~目录下```
$ cat ~/.pypirc
[distutils]
index-servers = local
[local]
repository: https://artifactory.momenta.works/artifactory/api/pypi/pypi-momenta
username: ***
password: ***

![在这里插入图片描述](https://img-blog.csdnimg.cn/aba23614cc674d6b9883d369ef1db75c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oy95omL562J6aOO6LW3,size_20,color_FFFFFF,t_70,g_se,x_16)

参考文档:https://blog.csdn.net/dongfuye/article/details/46875539
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:22:51  更:2022-02-19 01:23:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 13:29:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码