Я пытаюсь получить точку входа для запуска моего фляжного приложения.
Я думаю, это из-за структуры каталогов:
my_app
- __init__.py
- app.py
- setup.py
- etc..
Мой файл setup.py:
from setuptools import setup, find_packages
import os.path
def read_requirements(pathname):
with open(pathname) as f:
return [line for line in (x.strip() for x in f) if not line.startswith('#')]
def project_path(*names):
return os.path.join(os.path.dirname(__file__), *names)
setup(
name='my_app',
version='0.1.0',
install_requires=read_requirements(os.path.join(os.path.dirname(__file__), 'requirements.txt')),
test_suite='nose.collector',
entry_points={
'console_scripts': [
'START_ME=app:run',
],
},
classifiers=["Programming Language :: Python :: 2.7"],
description=__doc__,
long_description='\n\n'.join(open(project_path(name)).read() for name in (
'README.md',
)),
zip_safe=False,
include_package_data=True,
packages=find_packages(),
)
Я думаю, что метод find_packages()
не улавливает тот факт, что он находится в пакете, может быть, он ищет пакеты в каталогах более низкого уровня? Я пробовал find_packages('.')
попытаться заставить его искать в корневом каталоге проекта, но это не сработало.
Могу ли я заставить это работать, не меняя структуру каталогов?
Вот собственно проект:
https://github.com/ThriceGood/Mimic
РЕДАКТИРОВАТЬ:
Кроме того, я заметил, что когда я запускаю setup.py install, я получаю файл top_level.txt в моей папке egg.info, в котором говорится, что верхний уровень на самом деле является пакетом, который существует внутри корневого/основного пакета, например:
/ main_package
- __init__.py
- app.py
/ sub_package
- __init__.py
- sub.py
в файле top_level.txt написано sub_package
.