python学习笔记5.4-包的发布

有时候我们创建了一个非常好用的包,希望能够分发给好友一起使用,或者开源到网上,这个时候就要会利用python包的发布的工具。 一个健壮的包,并不只是包含有代码,应该有说明文档和测试代码,一般的目录结构是这样的:

project/
    README.txt
    setup.py
    MANIFEST.ni
    doc/
        documention.txt
    project/
        __init__.py
        foo.py
        ...
        utils/
            __init__.py
            func.py
        ...    
    test/
        test1.py
        ...

与包的建立的相比,多了setup.py文件和MANIFEST.n文件,这两个文件包含了包发布相关的所有内容。

1. setup.py文件

# setup.py
from distutils.core import setup

setup(name='project',
      version='1.0',
      auther='your name',
      url = 'your url'
      packages=['project', 'project.utils'),
     )

需要说明的是packages=['project', 'project.utils'],这里指明包包含有哪些内容,包括顶层包和子包,常见的错误就是在这里指明了顶层包却没有指明子包,导致子包不可用。

2. MANIFEST.ni 文件

#MANIFEST.ni
include *.txt
recursive-include test *
recursive-include doc *

可以看出该文件的功能就是列出各种不属于代码的部分,也就是非源码部分。

3. 包的安装

  • 1)windows环境下:
打开运行(win键+R)输入cmd,通过cd /d c:\home 将工作路径转移到包的目录(我的是C:\home)
运行命令 python setup.py install 安装库 ,最后提示Installed:位置。。 表示安装成功。
  • 2)linux环境下
在包的目录下输入:
bash python setup.py sdist

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

scp命令提示bash:scp command not found

今天需要从a主机拷贝文件到b主机,两个主机都是linux的。 在a主机上使用scp命令拷贝 scp /root/1.txt root@www.0377joyou...

2735
来自专栏L宝宝聊IT

权限管理和备份实例

1777
来自专栏数据库

权限管理和备份实例

权限设置: 1、创建用户zhangsan,并赋予zhangsan有dbcreator的服务器权限。 2、使用zhangsan登录,测试能否创建数据库。 3、使用...

1935
来自专栏性能与架构

Linux 全能型监控工具

dstat是Linux中功能很全面的一个监控工具 dstat官方将其定义为vmstat、iostat、ifstat等工具的多功能替代品,且添加了许多额外的功能 ...

3318
来自专栏mwangblog

开始使用vim

1315
来自专栏拂晓风起

用SonBuddy搭建无线局域网,共享上网。(SONBuddy常见问题,无线组网,共享,上网,笔记本)

844
来自专栏北京马哥教育

原创投稿 | 使用nagios监控主机及服务

写在前头:限于个人对nagios的了解有限,写得不够深入与系统,甚至可能会有些错误,各位看官还多包涵。本文主要涉及的是nagios daemon、nrpe及三个...

27511
来自专栏Golang语言社区

Linux下TCP最大连接数受限问题

一、 文件数限制修改 1、用户级别 查看Linux系统用户最大打开文件限制: # ulimit -n 1024 (1) vi /etc/security/li...

4416
来自专栏北京马哥教育

Auditd - Linux 服务器安全审计工具

安全防护是首先要考虑的问题。为了避免别人盗取我们的数据,我们需要时刻关注它。安全防护包括很多东西,审计是其中之一。 我们知道Linux系统上有一个叫 audit...

1984
来自专栏专注研发

记一次<iframe>的使用

将jsp拆分frame框架,因为采用了第一种方式,一直在考虑用jquery异步请求获取数据,总是但不到效果,

652

扫码关注云+社区