2014-09-04 2 views
0

파이썬 2.6.6이 있습니다. 내 Red Hat Linux VM에서 특정 스크립트를 실행하는 방법. 3.4.1로 업그레이드해야합니다. 시도 Red Hat Linux에서 Python을 업그레이드 할 수 없습니다.

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 

를 얻을 물론 내가 시스템 스크립트의 많은으로 컴퓨터에서 파이썬 2.6.6을 삭제할 수 없습니다하면에 따라 달라집니다. 어떤 아이디어를해야합니까?

+0

쉬운 설치는 패키지를 업그레이드하는 데 사용됩니다. 파이썬 3을 설치하려면 이것을 확인하십시오. http://stackoverflow.com/questions/8087184/installing-python3-on-rhel – ChillarAnand

+0

"그리고 물론 많은 시스템 스크립트가 의존하기 때문에 파이썬 2.6.6을 컴퓨터에서 삭제할 수 없습니다. 그것." 즉, 정의에 따라 업그레이드 할 수 없음을 의미합니다. _ 할 수있는 일은 새로운 것을 나란히 설치하는 것입니다. 다행히도 Python은 두 가지 다른 버전을 쉽게 만들 수 있으며 두 가지 주요 버전을 더 쉽게 가질 수 있습니다. 예를 들어'python3' 또는'python3.4'를 사용하여 3.4 버전을 실행할 수 있습니다.6은 PATH에서 더 높으며 스크립트 ('easy_install','pip'','ipython' 등)도 유사한 처리를합니다. – abarnert

+0

virtualenvirnonment를 사용하십시오. – Vor

답변

0

파이썬 3.4 패키지 용 소스를 찾아 보거나 직접 빌드해야합니다.

빠른 검색은 파이썬 3.4 자신을 구축하기위한 http://wiki.guibin.info/?p=133을 찾습니다. 좀 더 검색으로

, 당신은 RPM 패키지의 소스를 찾을 수있을 수 있지만, 물론 당신이 패키지를 신뢰 얼마나 당신까지 - 내가 생산에 임의의 RPM을 사용하지 것이다!

1

나는 일반적으로 RHEL 같은 RPM 관리 유통에 수동으로 업그레이드 패키지에 대해 조언한다. 업그레이드가 필요한 경우 rpm을 통해 업그레이드하면됩니다. rpm 도구가 존재하는 이유와 그 도구가 사용되는 이유가 있습니다. 실제로는 여러 가지 이유가 있습니다. 중요한 용도로 사용되며 패키지를 수동으로 설치 또는 업그레이드하면 패키지가 완전히 파괴됩니다. 그것은 절대적으로 필요의 경우

은으로해야 다음 절차는 다음과 같습니다

  1. 잡아 레드햇의 파이썬 패키지의 소스 RPM.
  2. python의 새 버전에 대한 소스를 가져옵니다.
  3. Red Hat의 python RPM에있는 패치가있는 경우, 그 패치가 새로운 버전의 Python에도 계속 적용되는지 확인하십시오.
  4. python RPM의 spec 파일을 사용하여 새로운 버전의 python으로 rpms를 빌드하십시오.
  5. # 4 단계가 효과가 있기를 바랍니다. 그렇다면, 예! 그것을 설치하십시오. 그렇지 않은 경우, 이유를 알아 내고, 필요에 따라 사양 파일을 패치하고 4 단계로 돌아갑니다.
  6. 이제 python의 새 버전을 설치했습니다. Python을 사용하는 다른 RHEL rpms 중 새 버전이 중단되지 않았는지 확인하십시오. 그렇지 않다면, 예! 너 끝났어. 무언가가 깨진 경우 무엇을해야할지 생각해보십시오.

많은 RHEL 시스템 관리 도구와 스크립트는 파이썬을 사용합니다. 새로운 Python 패키지가 설치되어 무언가가 망가지는 것은 완전히 의문의 여지가 없습니다.

RHEL을 사용하는 전체 이유는 그 모든 구성 요소의 상호 운용성을 테스트 한 시중 지원, 안정적인 리눅스 배포판을하는 것입니다. 임의의 부분을 업그레이드하면 RHEL을 사용하는 전체 지점을 놓치게됩니다. 일반적으로 개별 패키지 대신 RHEL의 전체 새 릴리스로 업그레이드합니다. 그러나 각자 자신에게 ...

관련 문제