【问题标题】:Why is setup.py executed twice by pip?为什么 setup.py 被 pip 执行了两次?
【发布时间】:2019-05-02 16:38:28
【问题描述】:

考虑一个非常简单的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() 一样?

【问题讨论】:

  • 你看到什么行为让你相信这个模块被执行了两次?

标签: python pip setuptools


【解决方案1】:

答案是pip install . 执行setup.py 两次(详细输出实际上说明了这一点),因为它执行egg_info 子命令,然后执行install 子命令。

一个可能的解决方案是检查是否sys.argv[1] == 'install',然后才执行所需的任何操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多