首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让pytest2和pytest3共存?

如何让pytest2和pytest3共存?
EN

Stack Overflow用户
提问于 2019-12-02 22:58:56
回答 2查看 100关注 0票数 1

使用pippip3安装pytest将分别安装用于Python2的pytest和用于Python3的pytest。但这两个命令都要通过键入相同的命令pytest…来调用这意味着一次只能使用两个中的一个!(即最新安装的那个)

看起来pytest二进制文件

代码语言:javascript
复制
~/.local/bin/pytest 

代码语言:javascript
复制
~/.local/lib/python2.7/site-packages/pytest.py
~/.local/lib/python3.6/site-packages/pytest.py

它不能直接访问。

EN

回答 2

Stack Overflow用户

发布于 2019-12-02 23:01:49

在linux中,您可以使用别名

例如:

代码语言:javascript
复制
alias search=grep

现在您可以使用search作为grep的别名

在您的案例中:

代码语言:javascript
复制
alias pytest2="python ~/.local/lib/python2.7/site-packages/pytest.py"
alias pytest3="python3 ~/.local/lib/python3.6/site-packages/pytest.py"

要使别名永久保存在bashrc文件中,请执行以下操作:

代码语言:javascript
复制
vim ~/.bashrc
票数 2
EN

Stack Overflow用户

发布于 2019-12-02 23:12:04

这是我发现的一个简单的解决方法,尽管我不是百分之百地相信它在未来会非常容易维护,特别是在python或系统包更新的健壮性方面:

~/.local/bin/pytest文件是一个python脚本:

代码语言:javascript
复制
#!/usr/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pytest import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

可以看出,是第一行#!/usr/bin/python3让它成为Python3的最高测试。将此行中的python版本更改为python2将使其改为为Python2调用pytest。

与原始文件相同的

  • ~/.local/bin/pytest3 (显示为above)
  • ~/.local/bin/pytest2,其中第一行已更改为#!/usr/bin/python2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59141515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档