使用pyenv

时间:2017-01-02 07:24:16

标签: python pyenv python-3.6

我正在研究在我们的项目中升级到Python 3.6的可能性。

目前我们在Ubuntu 14.04上使用来自ppa:fkrull/deadsnakes的Python 3.5.2。 PPA还没有Python 3.6,它还不清楚何时可用。

我不想安装另一个PPA。

我正在努力寻找更通用的方法。

我发现人们建议使用从源代码编译Python的pyenv,这听起来很有意思,因为我可以随时升级Python而无需等到repo维护者添加它。此外,我可以轻松安装其他Python风格,如PyPy。

我还没准备好将pyenv用作虚拟环境,所以我想知道是否可以使用它来全局编译和安装Python,以便我可以使用它。

4 个答案:

答案 0 :(得分:5)

文档有点令人困惑,因为安装后python-build中没有添加PATH二进制文件。

python-buildpyenv插件(默认安装)。文档和更多信息在此处:https://github.com/pyenv/pyenv/tree/master/plugins/python-build

如何为所有用户安装系统范围的Python:1)以root身份登录,2)将所需的Python版本安装到/usr/local/python-X.Y.Z

sudo ~/.pyenv/plugins/python-build/bin/python-build 3.6.1 /usr/local/python-3.6.1/

现在您可以将此Python版本用作普通用户,例如,您可以为您的项目创建virtualenv:

/usr/local/python-3.6.1/bin/python -m venv /var/www/my-app/.env/

答案 1 :(得分:1)

答案 2 :(得分:0)

https://github.com/yyuu/pyenv/wiki/Common-build-problems#installing-a-system-wide-python

  

安装系统范围的Python

     

如果您想安装一个可供所有人使用的Python解释器   用户和系统脚本(无pyenv),使用ViewPurple作为安装   路径。例如:

/usr/local/

答案 3 :(得分:0)

通过结合其他答案的提示并通读文档,我找到了一种很好的方法来精确完成您想要的工作,该工作在CI系统,Docker容器或开发人员机器(如果没有的话)中可以正常工作已经通过Apt或Yum或Homebrew安装了python3.x。

假设您具有构建所需版本的Python 3.x所需的所有依赖项(高于3.4的版本都需要pyenv-installer并不总是会警告您的一些额外软件包),则可以运行以下命令来获取一个新的系统范围的Python,所有用户都可以执行,可以轻松地通过python3.6 -m venv yourvenv传递给virtualenv创建。

curl https://pyenv.run | bash # or
wget -O - https://pyenv.run | bash

export PATH="$HOME/.pyenv/bin:$PATH"
$(pyenv which python-build) 3.6.10 /usr/local/

which python3.6
python3.6 --version
# If you get an error running the above commands, it probably means
# /usr/local/bin isn't in your PATH yet
# on Debian/Ubuntu and maybe others the /etc/environment or 
# /etc/login.defs file puts it in the path when a user logs in
echo $PATH
export PATH="/usr/local/bin:$PATH"
python3.6 --version