setup.py如何安装npm模块?

Max*_*len 6 python setup.py npm

我实现了一个我想测试的python web客户端.

服务器托管在npm注册表中.在运行我的功能测试之前,服务器在本地运行节点.

如何从setup.py脚本中正确安装npm模块?

这是我目前的解决方案灵感来自这篇文章:

class CustomInstallCommand(install):
    def run(self):
        arguments = [
            'npm',
            'install',
            '--prefix',
            'test/functional',
            'promisify'
        ]
        subprocess.call(arguments, shell=True)
        install.run(self)

setup(
    cmdclass={'install': CustomInstallCommand},
Run Code Online (Sandbox Code Playgroud)

pra*_*mod 6

from setuptools.command.build_py import build_py

class NPMInstall(build_py):
    def run(self):
        self.run_command('npm install --prefix test/functional promisify')
        build_py.run(self)
Run Code Online (Sandbox Code Playgroud)

要么

from distutils.command.build import build

class NPMInstall(build):
    def run(self):
        self.run_command("npm install --prefix test/functional promisify")
        build.run(self)
Run Code Online (Sandbox Code Playgroud)

最后:

setuptools.setup(
    cmdclass={
        'npm_install': NPMInstall
    },
    # Usual setup() args.
    # ...
)
Run Code Online (Sandbox Code Playgroud)

还看这里