通过从源代码安装版本 3.5.1 在 vi​​rtualenv 中安装不同的 Python 版本

Installing different Python version in virtualenv with installing version 3.5.1 from source

我正在 运行ning openSUSE 13.1 并且我正在尝试在 virtualenv 中安装 Python 3.5.1,因为系统默认是 3.3.5 并且无法使用 yast 进一步更新.

我已经下载了源代码,将其存储在文件夹 ~/pysrc35 中并创建了一个新目录 ~/localpython 并安装了它 ./configure --prefix=/home/<user>/.localpython make make install

那里的python3可执行文件可以工作,localpython/bin看起来像 2to3 easy_install-3.5 idle3.5 pip3.5 pydoc3.5 python3.5 python3.5m python3-config pyvenv-3.5 2to3-3.5 idle3 pip3 pydoc3 python3 python3.5-config python3.5m-config pyvenv

现在我想使用 pip,它似乎已包含在安装中,但是当我 运行 它时,我得到错误:

ImportError: No module named 'pip'

我已经将 $PYTHONHOME 设置为 /home/<usr>/localpython/bin/python3 并将 $PYTHONPATH 设置为 /home/<usr>/localpython/lib/python3.5/:/home/<usr>/localpython/lib64/python3.5/:/home/<usr>/localpython/include/python3.5m/,因为我之前遇到过错误,但现在我被 pip 困住了。

一个很好的解决方案是使用 pyenv。此工具使安装不同的 python 版本和虚拟环境变得超级容易。唯一的先决条件可能只是安装了 git。然后克隆它

git clone git://github.com/yyuu/pyenv.git ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

和运行

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
eval "$(pyenv virtualenv-init -)"

在终端中。对于 openSUSE 或 Ubuntu ~/.bashrc 以外的 Linux 发行版,可能必须替换为 ~/.bash_profile

。重启终端后,运行

pyenv install 3.5.x

安装你想要的任何版本(除了 3.5.1 尚不可用)。然后你应该切换到你想要的 Python 版本,例如

pyenv shell 3.5.x

为当前终端会话设置版本。

之后可以通过

创建并激活虚拟环境
pyenv virtualenv /path/to/venv 
pyenv activate /path/to/venv

另请参阅 this video,了解有关使用 pyenv 以及与 django 结合使用的综合教程。