Почему setup.py выполняется дважды с помощью pip? - PullRequest
2 голосов
/ 02 мая 2019

Рассмотрим очень простой setup.py:

from setuptools import setup, find_packages

print('WAAAAAAAAA') # executed twice!

setup(
    name="foo",
    version="190425",
    description="bar",
    author="Developers",
    author_email="me@domain.com",
    install_requires=["pyzmq", "pybullet"],
    packages=find_packages(),
)

Почему именно модуль загружается дважды при запуске pip install . -v и что я могу сделать, чтобы защитить код, чтобы он запускался только один раз за вызов pip, точно так же, как setup()?

1 Ответ

2 голосов
/ 02 мая 2019

Ответом оказывается то, что pip install . выполняет setup.py дважды (подробный вывод фактически говорит об этом), поскольку он выполняет подкоманду egg_info, а затем подкоманду install.

Возможное решение - проверить, если sys.argv[1] == 'install', и только затем выполнить все, что нужно.

...