Моя древовидная структура проекта
.
├── example.gif
├── funmotd
│ ├── config.json
│ ├── __init__.py
│ └── quotes_db.py
├── LICENSE
├── README.md
└── setup.py
setup.py
(Удален некоторый код, чтобы иметь меньше кода)
import sys
import os
import setuptools
from setuptools.command.install import install
class PostInstall(install):
def run(self):
mode = 0o666
bashrc_file = os.path.join(os.path.expanduser('~'), ".bashrc")
install.run(self)
# Added CLI to .bashrc
# Change "config.json" file permission
setuptools.setup(
...
entry_points={'console_scripts': ['funmotd = funmotd:main']},
package_dir={'funmotd': 'funmotd/'},
package_data={'funmotd': ['config.json'], },
include_package_data=True,
python_requires=">=3.4",
cmdclass={'install': PostInstall, },
...
)
При запуске PostInstall
выполняется нормально python3 setup.py install
.Итак, загружено в Pypi
, как показано ниже (Из этого документа )
$ python3 setup.py bdist_wheel
# Created "dist", "funmotd.egg-info" and "build" dirs
$ twine upload dist/*
Но когда я запускаю pip install funmotd
, PostInstall
выполняет НЕ ,Я вижу, что dist/*
это как статические скомпилированные вещи.Есть ли хитрость для запуска задач после установки, когда я запускаю pip install funmotd
.Или как заставить setup.py
выполнить в pip
.
Я следовал за нижеприведенными вопросами, не нашел решения, что мне нужно
PS: Я не хочу, чтобы пользователи клонировали репо и запускали python setup.py install
.Хотите сделать это просто pip install funmotd
UDPATE1
Кажется, уже существует проблема на github , который является длинной нитью