Skip to main content

Databricks common functions, written by TrueMetrics.

Project description

这里介绍如何通过自定义代码,上传到pypi,以供Databricks加载外部库使用。 下面以本项目中notebook/wheels为例说明操作过程。 后续可以搭建私有PyPi仓库。

1. 前置依赖

1.1 包安装以及升级

pip install twine
python -m pip install --user --upgrade setuptools wheel

1.2 注册pypi

提前在 pypi 上注册账户,并验证邮箱。

2. 创建程序代码

2.1 创建项目

该步骤略,具体功能自定义。项目中包含如下程序结构:

TMFuncs
    __init__.py
    batch_read.py
    op_log.py

2.2 修改 init.py 文件

在文件中,写入如下代码:

from .batch_read import *
from .op_log import *

name = 'TMFuncs'

3. 创建setup所需文件

3.1 setup.py

在项目的平行目录下(即与TMFuncs处于相同目录),创建 setup.py,写入如下代码:

from setuptools import setup, find_packages

with open("README.md", "r") as fh:
    long_description = fh.read()

setup(name='TMFuncs',
      version='0.0.1',
      description='Databricks common functions, written by TrueMetrics.',
      long_description=long_description,
      long_description_content_type="text/markdown",
      url='https://www.truemetrics.cn/',
      author='TSO',
      author_email='tlsong@truemetrics.cn',
      packages=find_packages(),
      classifiers=[
          "Programming Language :: Python :: 3.9",
          "License :: OSI Approved :: MIT License",
          "Operating System :: OS Independent",
      ],
      )

其中:

  • name是包的分发名称。只要包含字母,数字_和,就可以是任何名称-。它也不能在pypi.org上使用。请务必使用您的用户名更新此内容,因为这可确保您在上传程序包时不会遇到任何名称冲突。
  • version 是包版本看 PEP 440有关版本的更多详细信息。
  • author并author_email用于识别包的作者。
  • description 是一个简短的,一句话的包的总结。
  • long_description是包的详细说明。这显示在Python Package Index的包详细信息包中。在这种情况下,加载长描述README.md是一种常见模式。
  • long_description_content_type告诉索引什么类型的标记用于长描述。在这种情况下,它是Markdown。
  • url是项目主页的URL。对于许多项目,这只是一个指向GitHub,GitLab,Bitbucket或类似代码托管服务的链接。
  • packages是应包含在分发包中的所有Python 导入包的列表。我们可以使用 自动发现所有包和子包,而不是手动列出每个包。
  • classifiers告诉索引并点一些关于你的包的其他元数据。在这种情况下,该软件包仅与Python 3兼容,根据MIT许可证进行许可,并且与操作系统无关。您应始终至少包含您的软件包所使用的Python版本,软件包可用的许可证以及您的软件包将使用的操作系统。有关分类器的完整列表,请参阅https://pypi.org/classifiers/

除了这里提到的还有很多。有关详细信息,请参阅 打包和分发项目。

3.2 README.md

这里是自定义的说明,markdown格式,根据需求撰写。

3.3 LICENSE

上传到Python Package Index的每个包都包含许可证,这一点很重要。这告诉用户安装你的软件包可以使用您的软件包的条款。有关选择许可证的帮助,请访问 https://choosealicense.com/

4. 项目打包及上传

4.1 打包项目

现在从setup.py位于的同一目录运行此命令:

python setup.py sdist bdist_wheel

如果您在安装它们时遇到问题,请参阅 安装包教程

此命令应输出大量文本,一旦完成,应在dist目录中生成两个文件:

dist/
  TMFuncs-0.0.1-py3-none-any.whl
  TMFuncs-0.0.1.tar.gz

4.2 上传 PYPI

在该项目命令行下输入

twine upload dist/*

然后输入注册时的用户名和密码即可。成功后,会输出如下信息:

Uploading distributions to https://upload.pypi.org/legacy/
Enter your username: tonysong
Enter your password: gbu00pF7!^gZkoUl$DWo6iy&m2XSAjjL
Uploading TMFuncs-0.0.1-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2/7.2 kB • 00:01 • ?
WARNING  Error during upload. Retry with the --verbose option for more details.
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.5/6.5 kB • 00:00 • ?

View at:
https://pypi.org/project/TMFuncs/0.0.1/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TMFuncs-0.0.17.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TMFuncs-0.0.17-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file TMFuncs-0.0.17.tar.gz.

File metadata

  • Download URL: TMFuncs-0.0.17.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for TMFuncs-0.0.17.tar.gz
Algorithm Hash digest
SHA256 1deb514c0a33fd5bb617902d23d651a8f68b0522e3edc79b077019ff6694f923
MD5 529d270f4c07ae73918c0dd2980ef4de
BLAKE2b-256 1555bd93176fffb96181817398cc26a59865d86aba3d07438c4b2c9be770679e

See more details on using hashes here.

File details

Details for the file TMFuncs-0.0.17-py3-none-any.whl.

File metadata

  • Download URL: TMFuncs-0.0.17-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for TMFuncs-0.0.17-py3-none-any.whl
Algorithm Hash digest
SHA256 4597ccd6a97b5ee20c83c25f9474c2a5304d65cc918c20074597745956b10d85
MD5 8cb2426e7cab7950ac5cd70207f5c04c
BLAKE2b-256 0859fd330f59cda5e134759f641b992fa6e25ed4f50cccb334cfe9bcde1505c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page