python - 为什么setup.py被pip执行了两次?

标签 python pip setuptools

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

最佳答案

答案原来是 pip install . 执行了 setup.py 两次(冗长的输出实际上是这么说的)因为它执行了 egg_info 子命令,然后是 install 子命令。

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

关于python - 为什么setup.py被pip执行了两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956806/

相关文章:

python - Tornado : support multiple Application on same IOLoop

python - 去重叠间隔

python - Jupyter - 从导入的笔记本导入类

python - 在可编辑模式下安装具有单独源目录的包

python - 如何使用 setup.py 安装托管在私有(private) PyPI 中的包?

python - 嵌套循环来创建模式

pip - 使用 tox 安装 extra_requires

python - 无法在python2.7.18上安装pyinstaller

使用 setup.py 构建 Python 多阶段 Docker

python - 离线环境安装Python包找不到安装的依赖