首页 > 解决方案 > 在 nox 中获取站点包目录

问题描述

在tox中,我可以通过magic变量获取当前环境的site-packages目录。envsitepackagesdir我该如何做同样的事情nox?这在尝试覆盖我的包裹时特别有用。

import nox

@nox.session()
def test(session):
    session.install('.')
    session.install('pytest', 'pytest-cov')
    session.run('pytest', '--cov', f'{session.virtualenv.site_packages_dir}/mypackage')

标签: pythonnox

解决方案


只要您实际安装的是 nox 环境(不使用venv_backend='none'),您就可以从虚拟环境的位置计算得出platform.sys

import nox

@nox.session()
def test(session):
    if platform.system() == "Windows":
        site_packages = f'{session.virtualenv.location}/Lib/site-packages'
    else:
        site_packages = f'{session.virtualenv.location}/lib/python{session.python}/site-packages'

    session.install('.')
    session.install('pytest', 'pytest-cov')
    session.run('pytest', '--cov', f'{site_packages}/mypackage')

推荐阅读