python命令行运行project_python命令行程序打包

我们知道在linux下通过命令行调用程序其实就是先把程序编译生成二进制文件,然后再把文件放入到PATH中,就可以直接通过文件名进行调用了,这里python程序也不例外。前面讲过了如何将一个python程序打包并发布,这里就讲一下命令行的python打包发布和下载安装

我们知道在linux下通过命令行调用程序其实就是先把程序编译生成二进制文件,然后再把文件放入到PATH中,就可以直接通过文件名进行调用了,这里python程序也不例外。前面讲过了如何将一个python程序打包并发布,这里就讲一下命令行的python打包发布和下载安装过程。

我们还是利用前面博客中的myproject为例,在原来的基础上添加一些代码:

.

├── setup.py

└── src

├── bin

│?? ├── command-line

│?? └── myproject

└── myproject

├── cmds.py

├── __init__.py

└── __init__.pyc

3 directories, 6 files

可以看出,比myproject一共多了三个文件command-line, myproject, cmds.py三个文件和bin这个文件夹。下面对他们进行详细的介绍:

command-line,mypreject文件

这两个文件的内容很简单

$ cat command-line

#!/usr/bin/env python

import myproject

myproject.test()

$ cat myproject

#!/usr/bin/env python

print 'welcome to command line mod!\n'

可以看出,command-line文件只是调用了myproject的test函数,二myproject只是输出了一个字符串,为了能够执行这两个文件,并且是通过命令行的方式,我们需要在setup.py这个文件中添加下面这个配置:

scripts=['src/bin/command-line', 'src/bin/myproject'],

然后安装修改后的源码包:

$ python setup.py install

...

Installing command-line script to /search/virtual/pypienv/bin

Installing myproject script to /search/virtual/pypienv/bin

...

我们可以看到上面的输出,其含义就是把这两个脚本安装在了bin目录下,由于这个路径是PATH路径,所以可以直接通过命令进行执行了,下面是执行的效果:

$ command-line

Hello World!

$ myproject

welcome to command line mod!

还有一个文件是cmds.py这个文件也是可以通过命令行直接运行的,只不过是通过另外一种方式进行安装的

先看一下cmds.py的内容吧:

$ cat cmds.py

import myproject

def main():

myproject.test()

可以看出,其实这个文件和command-line一样,引用了myproject并输出,唯一不同的是他自己顶一个了一个函数main来调用。

同样setup.py中也要添加一个配置,来找到这个文件并对其进行编译:

entry_points = {

'console_scripts': ['cmds=myproject.cmds:main'],

}

这个配置和前面的不一样,并且里面指定了要执行的脚本的函数名,通过从新安装我们可以看:

$ python setup.py install

...

Installing cmds script to /search/virtual/pypienv/bin

...

同样,这个文件编译后也放到在PATH下,通过命令行可以运行:

$ cmds

Hello World!

到这里一个通过命令行运行的包就介绍完了.

同样我们可以这个写好的包上传到私有源,然后在其他机器上下载安装,同样可以运行~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值