Pypi 包:我的可执行文件在哪里?

Pypi package : where is my executable?

(Archlinux/Python3.5)

我正在使用以下命令处理 a small Python3 project made up of only one Python file . With the help of tutorials like this one, I've created a Pypi package

$ python setup.py sdist bdist_wheel register -r pypi   (ok, no error msg)
$ python setup.py sdist bdist_wheel upload -r pypi     (ok, no error msg)

...我想我必须写:

$ sudo pip install katal    (ok, no error msg)

然后,例如:

$ katal --version

...为了使用它。

但是最后一个命令失败了:没有katalKatal命令;如果我看一下 /usr/lib/Python3.5/site-packages/ ,我只会看到以下文件(没有安装 .py 文件!):

  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/DESCRIPTION.rst
  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/METADATA
  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/RECORD
  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/WHEEL
  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/metadata.json
  /usr/lib/python3.5/site-packages/Katal-0.0.9.dist-info/top_level.txt

我显然忘记了什么...但是什么?我的 setup.py clearly defines 我的项目的唯一包在哪里(=除了 test 目录之外的所有内容,包括 katal 子目录):

 packages=find_packages(exclude=['tests*']),

如有任何帮助,我们将不胜感激!

在您的setup.py中,有一段被注释掉了:

...
##entry_points={
##    'console_scripts': [
##        'sample=sample:main',
##    ],
##
...

这是我通常定义可执行文件的地方,请参阅 this tutorial。您还可以为设置定义一个 scripts 参数,它的工作方式略有不同(并且可能会更好地匹配您的用例),但这在我链接到的教程中有所介绍。