我正在离线 64 位 RHEL 6.4 机器上升级 python,并且必须通过 RPM 而不是 yum 来完成。我正在尝试将 python 从 2.4.3 升级到 2.6,以便我可以从源代码构建nodejs。
当我跑步时我遇到了麻烦
rpm -Uvh python26-2.6.8-2.el5.x86_64.rpm
我收到失败的依赖项错误:
libpython2.6.so.1.0() (64bit) is needed by python26-2.6.8-2.el5.x86_64
无论如何我找不到安装 libpython2.6...
答案1
尝试破坏系统中包含的 Python 版本通常是不明智的。这些应用程序并不是为了用户而存在,而是为了支持与操作系统捆绑在一起的应用程序。该发行版的大部分内部管道都依赖于这些特定的 Python 包。
如果您需要特定版本的 Python、Perl、Ruby 等,您应该真正养成使用如下系统来设置这些解释器的本地版本的习惯:
pyenv
这个项目曾经被称为蟒蛇酿造,但现在被称为pyenv
。要安装它,您需要将其副本克隆到您的$HOME
目录中,如下所示:
$ git clone git://github.com/yyuu/pyenv.git .pyenv
Cloning into .pyenv...
remote: Counting objects: 2207, done.
remote: Compressing objects: 100% (617/617), done.
remote: Total 2207 (delta 1489), reused 2172 (delta 1462)
Receiving objects: 100% (2207/2207), 358.75 KiB, done.
Resolving deltas: 100% (1489/1489), done.
现在将设置添加pyenv
到您的~/.bashrc
文件中:
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> .bashrc
$ echo 'eval "$(pyenv init -)"' >> .bashrc
您可以看到以下的用法pyenv
:
$ pyenv
pyenv 0.4.0-20130613-17-ge1ea64b
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using the python-build plugin
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/yyuu/pyenv#readme
您可以查看可用的版本:
$ pyenv versions
* system (set by /home/saml/.pyenv/version)
现在让我们安装Python 3.2.5:
$ pyenv install 3.2.5
Downloading Python-3.2.5.tgz...
-> http://yyuu.github.io/pythons/ed8d5529d2aebc36b53f4e0a0c9e6728
Installing Python-3.2.5...
Installed Python-3.2.5 to /home/saml/.pyenv/versions/3.2.5
Downloading setuptools-0.9.5.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.5.tar.gz
Installing setuptools-0.9.5...
Installed setuptools-0.9.5 to /home/saml/.pyenv/versions/3.2.5
Downloading pip-1.3.1.tar.gz...
-> http://yyuu.github.io/pythons/cbb27a191cebc58997c4da8513863153
Installing pip-1.3.1...
Installed pip-1.3.1 to /home/saml/.pyenv/versions/3.2.5
重建我们的环境以合并新安装:
$ pyenv rehash
现在我们应该看到有 2 个版本可用,系统仍然是默认的 ( *
):
$ pyenv versions
* system (set by /home/saml/.pyenv/version)
3.2.5
让我们切换到3.2.5:
$ pyenv which python
/usr/bin/python
$ pyenv global 3.2.5
$ pyenv which python
/home/saml/.pyenv/versions/3.2.5/bin/python
$ pyenv versions
system
* 3.2.5 (set by /home/saml/.pyenv/version)
虚拟环境和虚拟环境包装器
这 2 个 Python 模块为您提供了维护单独工作区的机制,可以在其中维护站点包。如果您想要将 Python 模块集隔离成集合并将它们关联到给定的 Python 应用程序,那么它们是一个不错的选择。它们使用起来有点尴尬,但可以完成工作。
有一个展示如何使用 virtualenvwrapper 的截屏视频以及。对于 Python,我首先设置virtualenv
,然后是virtualenvwrapper
.
例子
$ sudo easy_install virtualenv
$ easy_install virtualenvwrapper
至此,2个Python模块已经安装完毕。从这里您需要设置环境,将以下内容添加到您的$HOME/.bashrc
文件中:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
现在重新分配您的资源.bashrc
:
$ source ~/.bashrc
现在您已准备好列出您的工作环境:
$ workon
$
您还没有,所以让我们创建一个,我们将其称为“temp”:
$ mkvirtualenv temp
New python executable in temp/bin/python
Installing setuptools................done.
现在,当我们使用以下命令重新列出我们的工作集时workon
:
(temp)$ workon
temp
请注意,提示已更改,因此工作区在提示前面添加了前缀。现在,删除它:
(temp)$ rmvirtualenv temp
Removing temp...
ERROR: You cannot remove the active environment ('temp').
Either switch to another environment, or run 'deactivate'.
无法如此停用它,您的提示将恢复正常:
(temp)$ deactivate
$
现在尝试删除它:
$ rmvirtualenv temp
Removing temp...
现在让我们再次重新创建它,并 cd 到我们的工作区:
$ mkvirtualenv temp
New python executable in temp/bin/python
Installing setuptools................done.
(temp)$ cdvirtualenv
(temp)$ ls
bin include lib lib64
现在检查“temp”工作区站点包:
$ cdsitepackages
(temp)$ pwd
/home/saml/.virtualenvs/temp/lib/python2.7/site-packages
现在让我们安装一个Python模块,smooshy
首先让我们使用以下命令搜索它pip
:
(temp)$ pip search smooshy
smooshy - Automatic lossless image compression
现在安装它:
(temp)$ pip install smooshy
Downloading/unpacking smooshy
Downloading smooshy-1.tar.gz
Running setup.py egg_info for package smooshy
Requirement already satisfied (use --upgrade to upgrade): simplejson in /usr/lib64/python2.7/site-packages (from smooshy)
Installing collected packages: smooshy
Running setup.py install for smooshy
changing mode of build/scripts-2.7/smooshy from 664 to 775
changing mode of /home/saml/.virtualenvs/temp/bin/smooshy to 775
Successfully installed smooshy
Cleaning up...
要确认它的安装位置:
(temp)$ which smooshy
~/.virtualenvs/temp/bin/smooshy
答案2
如您所见,该python26-2.6.8-2.el5.x86_64.rpm
包依赖于 libpython2.6.so.1.0() (64位)
这是由python26-libs-2.6.8-2.el5.x86_64.rpm
但是,有必要同时安装两者,因为 python26-libs 还依赖于 python26 包:
rpm -Uvh python26-2.6.8-2.el5.x86_64.rpm python26-libs-2.6.8-2.el5.x86_64.rpm
该python26
软件包将与系统附带的 (2.4) 软件包一起安装python
,并且不会替换python
可执行文件,为了运行 python26,您的脚本!#
或命令行需要指定python26