问题描述
这是我目前的状态,没有pyenv设置python版本。
$ pyenv versions
* system (set by /Users/r/.python-version)
2.7.16
3.5.9
$ python3 --version
Python 3.8.6
$ python2 --version
Python 2.7.16
$ python --version
Python 2.7.16
将python版本设置为2.7.16和3.5.9
$ pyenv local 2.7.16 3.5.9
$ pyenv versions
system
* 2.7.16 (set by /Users/r/.python-version)
* 3.5.9 (set by /Users/r/.python-version)
$ python3 --version
Python 3.5.9
$ python2 --version
Python 2.7.16
$ python --version
Python 2.7.16
到目前为止,一切正常。
但是,当从python3 shell内部调用python --version
时,python的默认版本将更改为3.5.9,而不是保留在2.7.16
<after running pyenv local 2.7.16 3.5.9>
╰─ python3
Python 3.5.9 (default,Aug 21 2020,14:43:12)
>>> import subprocess
>>> subprocess.check_output(["python","--version"])
b'Python 3.5.9\n'
>>> subprocess.check_output(["python3","--version"])
b'Python 3.5.9\n'
>>> subprocess.check_output(["python2","--version"])
Python 2.7.16
b''
# The PATH env looks like
/Users/r/.pyenv/versions/3.5.9/bin:/usr/local/Cellar/pyenv/1.2.21/libexec:/Users/r/.pyenv/shims:...
类似地,在python2 shell中运行时,默认python版本仍为2.7.16
╰─ python2
Python 2.7.16 (default,14:50:25)
>>> import subprocess
>>> subprocess.check_output(["python","--version"])
Python 2.7.16
''
>>> subprocess.check_output(["python3","--version"])
'Python 3.5.9\n'
>>> subprocess.check_output(["python2","--version"])
Python 2.7.16
''
# The PATH env looks like
/Users/r/.pyenv/versions/2.7.16/bin:/usr/local/Cellar/pyenv/1.2.21/libexec:/Users/r/.pyenv/shims:...
因此,在这种情况下,由于在运行python3时/Users/r/.pyenv/versions/3.5.9/bin
在路径中是前置的,因此/Users/r/.pyenv/versions/3.5.9/bin/python
优于之前的pyenv local 2.7.16 3.5.9
设置。
是预期的吗? 无论如何,即使在python 3.5.9内运行时,默认python仍指向2.7.16?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)