我正在使用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的规范方法?
答案 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