如何在cocotb中强制使用python 3?

时间:2019-03-27 15:04:41

标签: python hdl cocotb

我正在使用CocoTB来测试我的HDL设计,但是据我了解,可以在python2.7或python3中使用它。

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

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

在endian_swapper测试(示例/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的规范方法?

3 个答案:

答案 0 :(得分:1)

尝试更新PATH变量。为我工作了
当cocotb寻找python时,它会在 PATH 变量中列出的文件夹中寻找它。
假设您的python3完整路径位于
/usr/bin/python3
(您可以通过which python3找到python3的完整路径)
我还在此处添加了指向新位置的链接,以防python2和python3都位于同一文件夹中。

> python -V
Python 2.7.17
> ln -s /usr/bin/python3 /home/$USER/python
> export PATH="/home/$USER:$PATH"
> python -V
Python 3.6.9

答案 1 :(得分:0)

感谢linuxconfig.org,我在themperek上找到了解决方案。但这不是我想要的。

别名解决方案不适用于我。更新替代版本有效,但仅在debian上安装了“官方” python3。我不能使用手动安装的替代产品(3.7)。

import React from 'react'
import left from './left.svg'
import right from './right.svg'

const defaultFoldIconComponent = ({ collapsed }) => {
  const style = { width: 25 }

  if (collapsed) return <img src={right} style={style} alt="right" />
  return <img src={left} style={style} alt="left" />
}

答案 2 :(得分:0)

我找到了一种正确的方法。

首先在官方网站上下载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