我在 Ubuntu 20.04 上使用 VS Code。我读到 Ubuntu 20.04 仅支持 python3。当我尝试运行 python3 代码时,它给出了一个语法错误,但我相信这是因为其中一个依赖项使用的是 python2.7。这是我收到的错误,指出 {prg}' 后的单引号语法无效。有没有办法升级消息中引用的 pyimport 包,还是我这里遗漏了其他东西?
================================ test session starts ================================
platform linux2 -- Python 2.7.18rc1, pytest-4.6.9, py-1.8.1, pluggy-0.13.0
rootdir: /home/ryan/tiny_python_projects/01_hello
collected 0 items / 1 errors
====================================== ERRORS =======================================
_____________________________ ERROR collecting test.py ______________________________
/usr/lib/python2.7/dist-packages/_pytest/python.py:507: in _importtestmodule
mod = self.fspath.pyimport(ensuresyspath=importmode)
/usr/lib/python2.7/dist-packages/py/_path/local.py:701: in pyimport
__import__(modname)
E: File "/home/ryan/tiny_python_projects/01_hello/test.py", line 21
E: out = getoutput(f'python3 {prg}')
答案1
Ubuntu 20.04 默认未安装 Python 2.7,但可以从终端安装。打开终端并输入:
sudo apt update
sudo apt install --install-suggests python2.7 python-pip python-pytest
从 Ubuntu 20.04 以上版本的 Ubuntu 中,python-pytest 已从默认 Ubuntu 存储库中删除。
对于 Python 3.x:
sudo apt install python3-pip python3-pytest
例子
第一个文件是应该测试的文件。
斐波那契数列(fibonacci.py):
def fib(n):
old, new = 0, 1
for _ in range(n):
old, new = new, old + new
return old
该文件将被“pytest”用于测试 fibonacci.py:
测试斐波那契数:
from fibonacci import fib
def test_fib():
assert fib(0) == 0
assert fib(1) == 1
assert fib(10) == 55
将目录更改为cd
包含 fibonacci.py 和 test_fibonacci.py 的目录。
pytest的结果:
============================= test session starts ==============================
platform linux2 -- Python 2.7.17, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
rootdir: /home/karel/Desktop, inifile:
collected 1 item
test_fibonacci.py . [100%]
=========================== 1 passed in 0.04 seconds ===========================
示例代码来源:Python 教程:使用 Pytest 进行测试
答案2
我认为我的 pip 安装得有点笨拙。我删除了 python2、pip、pip2、pip2.7 和 pylint。然后我重新安装了所有内容,并确保它适用于 python 3,现在一切正常。感谢您的帮助!