1

(Archlinux/Python3.5)

我正在开发一个仅由一个 Python 文件组成的小型 Python3 项目在这样的教程的帮助下,我使用以下命令创建了一个 Pypi 包:

$ 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清楚地定义了我的项目的唯一包在哪里(=取除test目录之外的所有内容,包括katal子目录):

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

任何帮助,将不胜感激 !

4

1 回答 1

2

在您的 setup.py 中,有一个部分被注释掉:

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

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

于 2015-10-11T16:33:48.827 回答