考虑一个非常简单的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()
一样?>
答案 0 :(得分:1)
答案是pip install .
执行了两次setup.py
(详细输出实际上是这样说的),因为它先执行了egg_info
子命令,然后又执行了install
子命令。
一种可能的解决方案是检查sys.argv[1] == 'install'
是否仅执行然后执行所需的任何操作。