发布自己的python包

5 篇文章 0 订阅
4 篇文章 0 订阅

在开课吧app中听了一点体验课,大概了解到如何发布自己的python包到pypi,觉得有趣,所以练习了一下。完成过程将在本文记录下来。所发布的包用pip install 命令就可以安装,在python代码中用import命令就可以导入,然后即可使用。觉得还蛮酷的~

本文参考网文:
https://blog.csdn.net/elongerzhc/article/details/106075913
https://www.cnblogs.com/CoXieLearnPython/p/9452628.html
https://www.cnblogs.com/rongpmcu/p/7662821.html
感谢原作者分享。

第一步 在pypi上注册一个自己的账号

注册网址:https://pypi.org/
  打开网页后,点击右上角的register,然后按照步骤完成即可。密码要求比较长。
  注册完后记得登录到你的邮箱中去验证一下邮箱有效性。

第二步 编写自己的包代码

此处写一个最简单的包,实现两个函数的计算,包代码文件及内容为:
  xl_dlframe.py 文件内容:
  
   import numpy as np
   import random

def sigmoid( x ):
      return 1 / ( 1 + np.exp( -x ) )

def random_linear(x):
      k,b = random.random(), random.random()
      return k*x + b

文件__init__.py 文件内容:
   
   from xl_dlframe.xl_dlframe import sigmoid
   from xl_dlframe.xl_dlframe import random_linear

第三步 准备打包文件

需要准备的打包文件包括:
  README.md
  requirements.txt
  setup.py

   README.md 是一个文本文件,里面写一下包的介绍即可。
   requirements.txt 应该是列出一些包的依赖库,此处为空。包的依赖库在setup.py中列出了。
   setup.py 文件是一个关键的打包文件,其中列出了包的相关信息。
   此处内容如下:

from os import path as os_path
   from setuptools import setup, find_packages

this_directory = os_path.abspath( os_path.dirname(file) )

### read file contents
   def read_file( filename ):
    print( “file name: {}”.format( os_path.join( this_directory, filename ) ) )
    with open( os_path.join( this_directory, filename ), encoding=‘utf-8’ ) as f:
     long_description = f.read()
    return long_description

#### get the requirements
   def read_requirements(filename):
   return [line.strip() for line in read_file(filename).splitlines()
    if not line.startswith(’#’)]

setup(
    name=‘xl_dlframe’, # package name
    python_requires=’>=3.4.0’, # python environment
    version=‘0.0.1’, # package version
   description=“Xiuli’s deep learning frame.”, # package introduction, shown in the pypi
    long_description = read_file(‘README.md’), # read the README.md’s contents
    long_description_content_type=“text/markdown”, # assign the package text format as markdown
    author=“XiuliZhang”, # aothor’s information
    author_email=‘zhangxiuli_nature@126.com’,
     url=‘https://blog.csdn.net/suezhang9?spm=1000.2115.3001.5343’,
    # Tell the package information, find_packages() could be ok too
    packages=[‘xl_dlframe’],
    package_data = {
    ‘xl_dlframe’: [‘files.json’]
    }, # To read the data file
    install_requires=[
    ‘numpy’,
    ‘matplotlib’,
    ], # Tells the rellied packages
    include_package_data=True,
    license=“MIT”,
    keywords=[‘xl_dlframe’],
    classifiers=[
    ‘Intended Audience :: Developers’,
    ‘License :: OSI Approved :: MIT License’,
    ‘Natural Language :: English’,
    ‘Programming Language :: Python’,
    ‘Programming Language :: Python :: Implementation’,
    ‘Programming Language :: Python :: 3.4’,
    ‘Programming Language :: Python :: 3.5’,
    ‘Programming Language :: Python :: 3.6’,
     ‘Programming Language :: Python :: 3.7’,
    ‘Topic :: Utilities’
    ],
   )

文件的目录结构如下:

 ./README.md
 ./requirements.txt
 ./setup.py
 ./xl_dlframe
         /__init__.py
         /xl_dlframe.py

第四步 对安装包进行开发测试

执行 python3 setup.py develop
 此时如果没有报错,即是安装成功
 测试包:
 命令行运行python3
 依次输入:
  import xl_dlframe as xlf
  xlf.sigmoid(2)
 应无报错,并返回一个数值。

第五步 打包构建并上传至pypi

依次执行以下命令:
  
  sudo python3 setup.py build
  sudo python3 setup.py sdist bdist_egg bdist_wheel
  sudo python3 setup.py sdist upload
  sudo python3 setup.py bdist_egg upload
  sudo python3 setup.py bdist_wheel upload

此时应该已经上传成功,运行 sudo pip install xl_dlframe 应该能够安装成功,并且能够在python代码中使用了。

可能遇到的问题:

1.找不到~/.pypirc文件
处理:
  执行命令touch ~/.pypirc 创建该文件,然后执行 sudo gedit ~/.pypirc
输入如下内容并保存:
[distutils]
  index-servers =
  pypi
  pypitest

[pypitest]
  repository = https://test.python.org/legacy/
  username = 你的pypi用户名
  password = 你的pypi密码

[pypi]
  repository = https://upload.python.org/legacy/
  username = 你的pypi用户名
  password = 你的pypi密码

因为文件中保存了你的用户名和密码,所以记得设置文件权限:chmod 600 ~/.pypirc。

2.在代码中导入包是报错:
  ImportError: No module named ‘_tkinter’, please install the python3-tk package
处理:用命令 sudo apt-get install python3-tk 安装python3版本的tkinter。

3.  找不到包中的指定函数:
处理:在__init__.py中添加import 该函数的语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值