升级Python 2.6。 libpython2.6.so.1.0 缺失

升级Python 2.6。 libpython2.6.so.1.0 缺失

我正在离线 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

相关内容