在setup.py中调用函数(使用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
这样就可以正常运行了。
问题
我该如何让我的 setup.py
调用我的函数,而不让 tox 抱怨呢?
1 个回答
1
tox
是一个工具,它会创建一个虚拟环境,并把你的模块安装到这个环境里。因为你的依赖项(也就是你的模块需要用到的其他模块)是在 setup.py
文件中列出的,所以这些依赖项不会在 setup.py
被调用之前安装。也就是说,当 setup.py
第一次运行时,你的新虚拟环境里什么都没有安装。
你可以看看 tox.ini
文件中的 deps
配置选项,因为根据文档,这些包会在你要测试的模块之前安装。具体可以参考这个链接 https://testrun.org/tox/latest/config.html