我正在研究在我们的项目中升级到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,以便我可以使用它。
答案 0 :(得分:5)
文档有点令人困惑,因为安装后python-build
中没有添加PATH
二进制文件。
python-build
是pyenv
插件(默认安装)。文档和更多信息在此处: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)
我为可信/ / xenial的deadsnakes贡献了一个python3.6包:)
答案 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