我使用 python3 -m pytest
运行我的测试。在 python3 指向 python3.6 时,这个方法是可用的。我安装了 python3.7 并使用以下命令将其设为默认的 python3:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
sudo update-alternatives --config python3
我重新安装了所有需要的 Python 3.7 包。但是现在我的测试无法运行了,因为它显示:/usr/bin/python3: No module named pytest
。我没有使用虚拟环境,问题也不是关于特定模块的,因为它也找不到其他模块。这应该与 Python 路径有关。在切换 Python 3 版本后,我不知道要更改什么,以便它可以轻松地在 /home/ubuntu/.local/lib/python3.x/site-packages/
找到所需的模块。
我又切换回 Python 3.6,现在出现了ModuleNotFoundError: No module named 'jsonpath_ng'
的错误,而在切换到 Python 3.7 前它还能正常工作。这是 python3 -m site
的输出:
sys.path = [
'/home/ubuntu',
'/usr/lib/python36.zip',
'/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload',
'/home/ubuntu/.local/lib/python3.6/site-packages',
'/usr/local/lib/python3.6/dist-packages',
'/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/ubuntu/.local' (exists)
USER_SITE: '/home/ubuntu/.local/lib/python3.6/site-packages' (exists)
ENABLE_USER_SITE: True
python3 -m pip install pytest --user
(如果要进行系统范围的安装,则可以省略“--user”)。系统的PIP可能仍在使用错误的Python解释器,这可能会解决您的问题。 - Alex Huszagh因为无法写入普通的 site-packages,所以默认使用用户安装 要求已在 /home/ubuntu/.local/lib/python3.7/site-packages (5.3.5) 中满足 pytest...
- Fatemeh Hosseiniimport pytest
,同时运行import sys; sys.executable
吗? - Alex Huszagh