我想要pyenv启动并运行(Mac OS X),所以我可以使用tox/detox来测试代码与多个python环境。我能够安装多个python3版本,然后在所有版本上使用pyenv global
。这样做,pyenv versions
返回此列表后:pyenv安装多个python,但只识别一些
system
* 3.2.6 (set by /Users/Workspace/.pyenv/version)
3.3.6
3.4.6
3.5.3
3.6.1
然而,只有3.4和3.5被认为(与2.7.8一起,我相信这是 '系统'):
Geoffreys-MBP:pydnmr-tox Workspace$ python --version
Python 2.7.8
Geoffreys-MBP:pydnmr-tox Workspace$ python3.2 --version
-bash: python3.2: command not found
Geoffreys-MBP:pydnmr-tox Workspace$ python3.3 --version
-bash: python3.3: command not found
Geoffreys-MBP:pydnmr-tox Workspace$ python3.4 --version
Python 3.4.3
Geoffreys-MBP:pydnmr-tox Workspace$ python3.5 --version
Python 3.5.2
Geoffreys-MBP:pydnmr-tox Workspace$ python3.6 --version
-bash: python3.6: command not found
任何想法是造成这种行为?除了3.4/3.5之外,tox/detox同样找不到任何Python版本。
编辑:似乎pyenv已经安装了所有的环境,但python3.x
命令没有找到它们。 python3.4
和python3.5
正在工作,因为他们发现以前的顶级安装。结果pyenv which python3.x.y
与python3.x [--version]
显示如下。
$ pyenv which python3.2
/Users/Workspace/.pyenv/versions/3.2.6/bin/python3.2
$ python3.2 --version
-bash: python3.2: command not found
$ python3.2
-bash: python3.2: command not found
pyenv which python3.3
/Users/Workspace/.pyenv/versions/3.3.6/bin/python3.3
$ python3.3 --version
-bash: python3.3: command not found
$ pyenv which python3.4
/usr/local/bin/python3.4 # old install
$ python3.4 --version
Python 3.4.3 # not 3.4.6 installed by pyenv
$ pyenv which python3.4.6
pyenv: python3.4.6: command not found
$ python3.4.6 --version
-bash: python3.4.6: command not found
$ pyenv which python3.5
/Users/Workspace/.pyenv/versions/3.5.3/bin/python3.5
$ python3.5 --version
Python 3.5.2 #Linked to my old 3.5.2 install instead of pyenv 3.5.3 install
$ pyenv which python3.6
/Users/Workspace/.pyenv/versions/3.6.1/bin/python3.6
$ python3.6 --version
-bash: python3.6: command not found
然而,正如在建议低于允许的TOX的答案,查找和使用所有这些环境的安装TOX-pyenv!
是什么'pyenv version'(没有计划** S **末)回归? –
Oliver:它按照全局/本地命令中列出的顺序返回系统加3.xx版本的列表,其中'(由/Users/Workspace/Desktop/pydnmr-tox/.python-version设置)' –
I也注意到这样的不一致,但没有机会让他们失望,这就是为什么tox-pyenv是一个很好的选择。 –