当我想要使用以下命令安装Python包时:
apt-get python-<package>
它被安装到了Python 2.6。我如何使其安装到Python 2.7?有什么选项吗?
我看过这个,但在我的操作系统中找不到这样的目录。我考虑使用easy_install-2.7
,但不是所有的包都被支持。例如python-torctl
。
我更感兴趣的是将Python 2.7与apt-get install
绑定。
apt-get python-<package>
它被安装到了Python 2.6。我如何使其安装到Python 2.7?有什么选项吗?
我看过这个,但在我的操作系统中找不到这样的目录。我考虑使用easy_install-2.7
,但不是所有的包都被支持。例如python-torctl
。
我更感兴趣的是将Python 2.7与apt-get install
绑定。
pip
或easy_install脚本安装软件包,后者是Python的setuptools软件包的一部分。/usr
,甚至/usr/local
)上也会导致混淆的错误和冲突。$ virtualenv -p <path-to-python-interpreter> <environment-dir>
$ source <environment-dir>/bin/activate
现在你已经完成了所有用Python编写的东西,都会“看到”虚拟环境中的解释器,这是由于设置的环境变量。
Ubuntu 10.04没有Python2.7的软件包。您需要自己构建2.7版本。我读过一篇关于Ubuntu在12.04发布时发布Python2.7软件包的文章,但我不确定存储库位置。
http://eli.thegreenplace.net/2011/10/10/installing-python-2-7-on-ubuntu/
或者:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7
https://askubuntu.com/questions/101591/install-python-2-7-2-on-ubuntu-10-04-64-bit
这个问题在网上有很多答案。
apt-get
管理它自己安装的 Python 版本的软件包。除非你使用 apt-get
安装了该版本,否则无法将其用于其他版本。 - Fred FooPyenv
https://github.com/pyenv/pyenv
Pyenv 允许您在单个用户中管理多个 Python 版本,无需使用 sudo,类似于 Node.js NVM 和 Ruby RVM。
安装 Pyenv:
curl https://pyenv.run | bash
然后将以下代码添加到你的 .bashrc
文件中:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv install --list
安装所需的Python版本:
# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# Build and install a Python version from source.
pyenv install 3.8.0
pyenv versions
现在我们拥有:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
选择不同的Python版本:
pyenv global 3.8.0
python --version
python3 --version
输出结果均为:
Python 3.8.0
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
python -c 'import cowsay; print(cowsay.__file__)'
提供:
/home/ciro/.pyenv/versions/3.8.0/lib/python3.8/site-packages/cowsay/__init__.py
并且:
which cowsay
提供:
/home/ciro/.pyenv/shims/cowsay
并且:
which python
提供:
/home/ciro/.pyenv/shims/python
按项目使用
在前一节中,我们看到如何在全局设置中使用pyenv。
但是,通常您希望基于每个项目来设置特定的Python版本和软件包版本。以下是如何实现。
首先像之前一样安装所需的Python版本。
然后,在您的项目目录中,使用以下命令设置所需的Python版本:
pyenv local 3.8.0
这将创建一个文件.python-version
,其中包含版本字符串。
现在让我们为我们的项目本地安装一个软件包:TODO:似乎没有很好的方法:Pyenv choose virtualenv directory
现在,当有人想要使用你的项目时,他们会执行以下操作:
pyenv local
这会设置正确的 Python 版本。
相关线程:
在 Ubuntu 18.04,pyenv 1.2.15 上测试通过。