При настройке точки входа console_scripts в setup.py я обнаружил, что эта проблема существовала, когда конечная точка была модулем или пакетом, а не функцией внутри модуля.
Traceback (most recent call last):
File "/Users/ubuntu/.virtualenvs/virtualenv/bin/mycli", line 11, in <module>
load_entry_point('my-package', 'console_scripts', 'mycli')()
TypeError: 'module' object is not callable
Например
from setuptools import setup
setup (
# ...
entry_points = {
'console_scripts': [mycli=package.module.submodule]
},
# ...
)
Должно быть
from setuptools import setup
setup (
# ...
entry_points = {
'console_scripts': [mycli=package.module.submodule:main]
},
# ...
)
Так, чтобы он ссылался на вызываемую функцию, а не на сам модуль. Кажется, не имеет значения, если модуль имеет блок if __name__ == '__main__':
. Это не сделает модуль доступным.