gpt4 book ai didi

python - 无法在 Red Hat Linux 上升级 Python

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:57 25 4
gpt4 key购买 nike

我有 Python 2.6.6。在我的 Red Hat Linux VM 上运行某个脚本。需要升级到3.4.1。尝试过

easy_install --upgrade python

但我总是得到

bash-4.1# easy_install --upgrade python
Searching for python
Reading http://pypi.python.org/simple/python/
Reading http://www.python.org
Reading http://www.python.org/2.3
Reading http://www.python.org/2.4
Reading http://www.python.org/2.4.1
Reading http://www.python.org/2.5
Reading http://www.python.org/download/
Best match: Python 3.4.1
Downloading https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz
Processing Python-3.4.1.tgz
Running Python-3.4.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Qd_HVP/Python-3.4.1/egg-dist-tmp-iqaG4H
Traceback (most recent call last):
File "/usr/bin/easy_install", line 9, in <module>
load_entry_point('distribute==0.6.10', 'console_scripts', 'easy_install')()
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1715, in main
with_ei_usage(lambda:
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1696, in with_ei_usage
return f()
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 1719, in <lambda>
distclass=DistributionWithoutHelpCommands, **kw
File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
cmd_obj.run()
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 236, in run
self.easy_install(spec, not self.no_deps)
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 472, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 502, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 681, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 958, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/usr/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 947, in run_setup
run_setup(setup_script, args)
File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 29, in run_setup
lambda: execfile(
File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 70, in run
return func()
File "/usr/lib/python2.6/site-packages/setuptools/sandbox.py", line 31, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 1865
exec(f.read(), globals(), fficonfig)
SyntaxError: unqualified exec is not allowed in function 'configure_ctypes' it contains a nested function with free variables
bash-4.1# SyntaxError: unqualified exec is not allowed in function 'configure_ctypes' it contains a nested function with free variables

当然我不能从机器上删除 Python 2.6.6,因为很多系统脚本都依赖于它。有什么想法吗?

最佳答案

我通常建议不要在 RPM 管理的发行版(例如 RHEL)上手动升级软件包。如果需要升级,只能通过 rpm 升级来完成。 rpm 工具的存在和使用是有原因的。实际上,原因不止一个。它有一个重要的用途,手动安装或升级包完全颠覆了它。

如果绝对有必要,下面的过程应该是这样的:

  1. 获取 Red Hat 的 python 包的源 RPM。
  2. 获取新版 python 的源代码。
  3. 找出 Red Hat 的 python RPM 中的哪些补丁(如果有)仍然适用于新版本的 python。
  4. 使用 python RPM 中的 spec 文件通过新版本的 python 构建 rpm。
  5. 希望第 4 步成功。如果是这样,耶!安装它。如果不是,找出原因,根据需要修补规范文件,返回步骤 #4。
  6. 您现在安装了新版本的 python。检查使用 python 的其他 RHEL rpm 是否都没有因新版本而中断。如果没有,耶!你完成了。如果有什么东西坏了,想办法解决它。

许多 RHEL 系统管理工具和脚本都使用 Python。由于安装了新的 python 包,某些东西最终被破坏并不是完全不可能的。

使用 RHEL 的全部原因是拥有一个商业支持的、稳定的 Linux 发行版,其所有组件都经过了互操作性测试。升级它的随机部分错过了拥有 RHEL 的全部意义;通常,您升级到 RHEL 的全新版本,而不是单个软件包;但是,对每个人来说……

关于python - 无法在 Red Hat Linux 上升级 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com