在setup.py中调用函数(使用tox)

时间:2014-07-28 23:37:08

标签: python python-2.7 distutils tox

我需要我的setup.py来调用另一个文件中的函数。我知道这可以通过设置cmdclass来完成,例如:

import my_module

class Install(_install):
    def run(self):
        _install.run(self)
        my_module.do_stuff()

setup(name='foo',
        cmdclass={'install': Install},
        )

但是我正在使用tox,它似乎不接受来自setup.py的导入(它只是说无法找到模块)。 为了让tox运行,我可以把它放在tox.ini而不是:

commands = path_to_my_module.py

它会运行得很好。

问题

如何在没有tox抱怨的情况下让setup.py调用我的函数?

1 个答案:

答案 0 :(得分:1)

tox创建了一个virtualenv并将模块安装到其中。由于依赖关系列在setup.py中,因此在调用setup.py之后才会安装它们以确定它们是什么。因此,在setup.py首次执行时,您的闪亮的新virtualenv中没有安装任何内容。

请使用deps中的tox.ini配置选项,因为根据文档https://testrun.org/tox/latest/config.html

,这些软件包将在测试之前安装