共享Python模块

PyPI

Python包索引(Python Package Index, PyPI)为Internet上的第三方Python模块提供了一个集中的存储库,我们平时pip install的Python库都来自这个存储库,我们也可以将自己写好的模块上传到PyPI上面开源,让世界上所有的人都能看到你的python模块。
  为了测试,我写了一个能完成经纬度转换为地理位置的小小demo(用的geopy库),代码如下:

    from geopy.geocoders import Nominatim
    """author :longlong
       purpose :practice
       the function of the module:input latitude,and then convert latitude to location """
    def print_position(lat,lng):
        geolocator = Nominatim()
        location = geolocator.reverse(str(lat)+','+str(lng),timeout=None)
        print(location.address)

print_position函数有两个参数,分别是纬度和经度,功能是打印出所对应的地理信息。

准备发布

为了共享创建的这个模块,需要准备一个发布(distribution)的环境。python中,所谓的distribution是指一个文件集合,这些文件联合在一起允许你构建、打包和发布你的模块。
  1. 新建一个文件夹,命名为lat_to_pos
  2. 在lat_to_pos中创建一个setup.py文件,代码是你的个人信息以及模块信息,以上述代码为基准的setup.py代码如下:

from distutils.core import setup
setup(
    name = 'lat_to_pos',
    version = '1.0.0',
    py_modules = ['lat_to_pos'],
    author = 'longlong',
    author_email = '1294054316@qq.com',
    url = 'http://www.sunlainglong.cn',
    description = 'convert latitude to location',
    )

构建发布

1. 在lat_to_pos文件夹中打开一个终端窗口,键入命令:python setup.py sdist

 2. 安装到本地的Python副本中,执行命令:`python setup.py install`
  这时,*lat_to_pos*模块已经转换成了一个发布,并且安装在本地Python副本中。构建完成时,*lat_to_pos*文件夹的结构如下:
  • lat_to_pos
    • bulid
       -  lib
         -  lat_to_pos.py
    • dist
        -  lat__to_pos-1.0.0.tar.gz 发布包
    • MANIFEST 包含发布中的文件列表
    • lat_to_pos.py python模块
    • setup.py 元数据

并且,现在就可以本地导入模块使用了,代码如下:

  注意:`import lat_to_pos`之后 `print_position(23,112)`会报错,原因是需要加入命名空间: `lat_to_pos.print_position(23,112)`   主Python程序中(以及IDLE shell)的代码与一个名为__main__的命名空间关联,将代码放在其单独的模块中时,Python会自动创建一个与模块同名的命名空间。所以,我的模块中的代码会与一个名为*lat_to_pos*的命名空间关联。当然那,也可以通过`from lat_to_pos import print_position`来导入模块,但是这个特定的impot语句导入的函数会覆盖你自己定义的同名函数。 ### 向PyPI上传代码   1. [注册PyPI账号 ](https://pypi.python.org/pypi "注册PyPI账号 ")   2. 执行`python setup.py register`    根据个人情况选择123来验证身份,保存账号密码以备之后使用。   3. 执行`python setup.py sdist upload`   4. succeed
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值