如何在Python中创建像echo这样的全局命令,并通过pip进行安装?

sig*_*nal 3 python pip

我可以使以下终端日志成为可能吗?

$ pip install pyecho
$ pyecho 'Lorem ipsum'
Lorem ipsum
Run Code Online (Sandbox Code Playgroud)

上面的pyecho是注册到 PyPI 的虚拟程序,用于打印类似echo的句子。

如何创建pyecho,一个用 Python 编写的全局命令?

Raf*_*lar 5

只需要三个简单的步骤就可以让你的 python 应用程序 pip-installable。

  1. 编写您的脚本或应用程序
  2. 添加设置脚本
  3. 上传到 PyPI

在此之后,您和其他任何人都可以通过键入以下内容来安装它: pip install my_awesome_pyecho

写你的脚本

脚本可以非常简单,也可以大而高级。我们将介绍最基本的例子

import sys

for arg in sys.argv:
   print arg
Run Code Online (Sandbox Code Playgroud)

您可以为脚本命名任何名称,但此名称将是您每次键入的名称,因此请确保它不会太难。我们将我们的脚本命名为 pyecho。

添加设置脚本

setup.py 文件是使用 Distutils 构建、分发和安装模块的中心。

from setuptools import setup

setup(
    name='my-awesome-pyecho',    # This is the name of your PyPI-package.
     version='0.1',                          # Update the version number for new releases
     scripts=['pyecho']                  # The name of your scipt, and also the command you'll be using for calling it
)
Run Code Online (Sandbox Code Playgroud)

可选:我们现在可以使用 python setup.py sdist 打包脚本。这将创建一个包含所有发行版的 dist 文件夹。解压分发文件后,您可以简单地使用 sudo python setup.py install 安装它。

上传到 PyPI

首先,您需要在 PyPi 上注册包。这只需键入 python setup.py register 即可完成。如果您之前未从这台计算机注册过软件包,系统会提示您显示以下消息:

$ python setup.py register
running register
We need to know who you are, so please choose either:
1. use your existing login,
2. register as a new user,
3. have the server generate a new password for you (and email it to you), or
4. quit
Your selection [default 1]:
...
Run Code Online (Sandbox Code Playgroud)

完成后,注册会询问您是否要将登录信息保存在 .pypirc 文件中。默认情况下,这将存储登录名和密码。下一步是上传您的包。只需输入 python setup.py sdist upload,该包现在可以在 PyPI 上使用了!通过在一个命令中完成所有操作,您可以节省一些击键次数:python setup.py register sdist upload。

来源