首页 > 解决方案 > 如何在 cocotb 中强制使用 python 3?

问题描述

我正在使用 CocoTB 来测试我的 HDL 设计,但据我所知,它可以与 python2.7 或 python3 一起使用。

在 setup.py 配置文件中,我可以看到两者都受支持:

    [...]
    "Programming Language :: Python :: 2.7",
    "Programming Language :: Python :: 3",
    [...]

在 endian_swapper 测试(examples/endian_swapper/tests/test_endian_swapper.py)中,如果我修改测试脚本以查看使用的是哪个版本:

@cocotb.test()
def wavedrom_test(dut):
    """
    Generate a JSON wavedrom diagram of a trace and save it to wavedrom.json
    """
    print("Python version used {}".format(sys.version_info))

我可以看到使用 «make» 命令启动测试时使用了 python2.7:

Python version used sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)

我的 python3 可执行文件名为...实际上是 python3(debian)。有没有强制 cocotb 使用 python3 而不是 python2 的规范方法?

标签: pythonhdlcocotb

解决方案


我找到了一个合适的方法来做到这一点。

首先在官网下载最新版本的python:

$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz

然后将其展开并使用选项--enable-shared对其进行配置

$ tar -Jxvf Python-3.7.4.tar.xz
$ cd Python-3.7.4
$ ./configure --enable-shared
$ make
$ sudo make install

安装后转到您的 cocotb 测试目录,然后安装虚拟环境:

$ export LD_LIBRARY_PATH=/usr/local/lib
$ virtualenv --python=/usr/local/bin/python3.7 envp37
$ source envp37/bin/activate
$ python -m pip install cocotb

然后你可以使用传统的 make 启动你的 cocotb 测试环境:

$ make

使用以下命令激活 python 环境:

$ deactivate

推荐阅读