在Cloudera虚拟机上安全地拥有两个版本的Python,而无需安装Python



目前,我们有一个使用Cloudera-Virtual Machines构建的大数据集群。默认情况下,VM 上的 Python 版本为 2.7。

对于我的一个程序,我需要Python 3.6。我的团队对 2 个安装非常怀疑,并害怕破坏现有的集群/虚拟机。我打算按照这篇文章安装2个版本 https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4

有没有办法"我可以在我的项目中打包Python 3.6"版本,并将Python主路径设置为我的项目文件夹,这样就不需要在现有的虚拟机上完成安装?

由于我们必须下载python并为Unix版本构建源代码,因此我想在VM上跳过这部分,而是提供具有Python 3.6的文件夹

看来miniconda就是你需要的。 使用它,您可以使用不同版本的 Python 管理多个 Python 环境。

要安装 miniconda3,只需运行:

# this will download & install miniconda3 on your home dir
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3

然后,创建新的 python3.6 环境:

conda create -y -n myproject 'python>3.6'

现在,输入新的 python3.6 环境

source activate myproject
python3

miniconda还可以安装 Python 包,包括 pip 包和编译包。 您还可以将 env 从一台计算机复制到另一台计算机。我鼓励你更深入地研究它。

ShmulikA的建议非常好。

在这里我想添加另一个 - 我使用 Python 2.7.x,但对于少数原型,我不得不使用 Python 3.x。为此,我使用了pyenv实用程序。

安装后,您所要做的就是:

pyenv install 3.x.x

可以列出所有可用的 Python 变体:

pyenv versions

要使用特定版本,在项目根目录下,执行以下操作:

pyenv local 3.x.x

它将在项目根目录上创建一个文件.python-version,并将版本作为其内容:

[nahmed@localhost ~]$ cat some-project/.python-version 
3.5.2

例:

[nahmed@localhost ~]$ pyenv versions
* system (set by /home/nahmed/.pyenv/version)
3.5.2
3.5.2/envs/venv_scrapy
venv_scrapy
[nahmed@localhost ~]$ pyenv local 3.5.2
[nahmed@localhost ~]$ pyenv versions
system
* 3.5.2 (set by /home/nahmed/.python-version)
3.5.2/envs/venv_scrapy
venv_scrapy

我发现它使用起来非常简单。 这是一篇关于安装和基本用法的文章(我的博客文章(。


对于部分:

由于我们必须下载python并为Unix构建源代码 版本,我想在 VM 上跳过这部分,而是运送文件夹 它有Python 3.6

你可以研究将Python解释器嵌入到Python应用程序中的方法:

对于Windows和Linux,都有bbfreezepyinstaller。

从 - SOAnswer。

最新更新