上面讲到怎么将自己的项目上传到pypi,并成功安装使用,但是咱的野心不止如此啊,如果只是这样的话,咱们的模块只能在脚本中引用使用或者在python的解释环境中使用,这不符合装X的的规范啊
image.png
那么怎样能使得我们的模块能够像系统命令一样直接在终端命令行执行呢?
image.png
如上是我的目录结构,我的脚本名为xyscript,圈出来的就是必要的文件,可以根据自己的情况修改。
(注:下文script_name指代脚本名)
其中bin/script_name.py内容为
#! /usr/bin/env python
from script_name.scripts.script_name import main
main()
其中script_name/scripts/init.py 内容可以为空
其中script_name/scripts/script_name.py内容为:
from __future__ import absolute_import
__all__ = ['function1', 'function2', 'function3','main']
from xyscript.api import function1, function2, function3 main
最后重要的是要把脚本定义的接口对应的方法都写到script_name/api.py中。
补充:一般来说,在开发过程中新增的方法和文件如果想立即安装生效,我们可以使用:
$ python setup.py develop
但是开发完成,发布了新的版本后我们想卸载掉develop安装的文件,改成从pypi安装的,这个时候是无法直接uninstall的,需要使用以下命令重新安装一遍:
$ python setup.py install --record files.txt
安装的所有文件将会罗列在files.txt文件中,要么手动一个个按照地址删除,要么使用:
$ cat files.txt | xargs rm -rf
一键删除