여러 버전의 Python이 설치된 CentOs 5.10에서 Python 2.4 - Python 2.4 및 Python 3.3에 numpy, nltk를 설치하려고 합니다.

여러 버전의 Python이 설치된 CentOs 5.10에서 Python 2.4 - Python 2.4 및 Python 3.3에 numpy, nltk를 설치하려고 합니다.

호스팅 서버에서 프로젝트를 상속받았으며 numpy 및 nltk를 설치하고 프로젝트에 가져오려고 합니다. 운영 체제는 centOs 5.10이고 웹 애플리케이션은 web.py를 사용합니다. 상자에는 Python 2.4와 Python 3.3의 두 가지 버전의 Python이 설치되어 있습니다. 기본값은 버전 2.4, "python -V" = python 2.4.3을 가리킵니다. 결국 나는 업그레이드하여 Python 3.3을 사용하고 Django 등으로 이동할 예정이지만 지금은 이 설정을 고수하고 있습니다. 나는 이 작업을 수행하는 방법을 한동안 연구해 왔습니다. 내 연구에서 pip와 nltk를 사용하여 numpy를 설치하는 방법을 읽었습니다. python2.4 디렉터리에서 easy_install을 사용하여 pip-1.4.1-py2.4.egg를 설치할 수 있습니다. pip-2.4를 사용하여 무엇이든 설치하려고 하면 pip 파일에 구문 오류가 발생합니다. 아래를 참조하세요...

$pip-2.4 numpy

File "/home/slrp/bin/pip-2.4", line 7, in ?
sys.exit(
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 236, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 2097, in load_entry_point
return ep.load()
File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 1830, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/home/slrp/lib/python2.4/pip-1.4.1-py2.4.egg/pip/__init__.py", line 10, in ?
from pip.util import get_installed_distributions, get_prog
File "/home/slrp/lib/python2.4/pip-1.4.1-py2.4.egg/pip/util.py", line 17, in ?
from pip.vendor.distlib import version
File "/home/slrp/lib/python2.4/pip-1.4.1-py2.4.egg/pip/vendor/__init__.py", line 8
from __future__ import absolute_import
SyntaxError: from __future__ imports must occur at the beginning of the file

몇 가지 조사를 했는데 이 오류는 여러 Python을 설치한 데서 발생한 것 같습니다. 이로 인해 python2.4에 virtualenv-1.10.1-py2.4.egg가 설치되었습니다. 하지만 virtualenv를 실행하려고 하면 다음 오류가 발생합니다.

ERROR: this script requires Python 2.6 or greater.

또한 python2.4의 간편 설치를 사용하여 numpy를 설치하려고 시도했지만 오류도 발생했습니다.

  $easy_install-2.4 numpy

  File "/usr/bin/easy_install-2.4", line 7, in ?
  sys.exit(
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1670, in main
  with_ei_usage(lambda:
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1659, in with_ei_usage
  return f()
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1674, in <lambda>
  distclass=DistributionWithoutHelpCommands, **kw
  File "/usr/lib/python2.4/distutils/core.py", line 149, in setup
  dist.run_commands()
  File "/usr/lib/python2.4/distutils/dist.py", line 946, in run_commands
  self.run_command(cmd)
  File "/usr/lib/python2.4/distutils/dist.py", line 966, in run_command
  cmd_obj.run()
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 211, in run
  self.easy_install(spec, not self.no_deps)
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 446, in easy_install
  return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 471, in install_item
  dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 655, in install_eggs
  return self.build_and_install(setup_script, setup_base)
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 930, in build_and_install
  self.run_setup(setup_script, setup_base, args)
  File "/usr/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 919, in run_setup
  run_setup(setup_script, args)
  File "/usr/lib/python2.4/site-packages/setuptools/sandbox.py", line 26, in run_setup
  DirectorySandbox(setup_dir).run(
  File "/usr/lib/python2.4/site-packages/setuptools/sandbox.py", line 63, in run
  return func()
  File "/usr/lib/python2.4/site-packages/setuptools/sandbox.py", line 29, in <lambda>
  {'__file__':setup_script, '__name__':'__main__'}
  File "setup.py", line 16
  from __future__ import division, print_function
  SyntaxError: future feature print_function is not defined

다시 말하지만, 저는 Python 버전을 업그레이드하거나 변경하고 싶지 않습니다. python3.3 디렉토리에서 virtualenv를 성공적으로 실행할 수 있습니다. 이 방법으로 여러 설치로 인해 발생할 수 있는 종속성 문제가 해결되기를 바랐지만 그렇지 않습니다. 나의 현재 계획은 virtualenv가 python2.4 버전을 성공적으로 실행하도록 하는 것입니다. 두 버전의 Python 모두에 대해 가상 환경을 설정할 수 있다면 문제가 해결되기를 바랍니다. 하지만 보시다시피 Python2.4에서는 virtualenv를 성공적으로 실행할 수 없습니다. 각 python 디렉토리에 있는 내용에 대한 자세한 정보는 다음과 같습니다.

[user@server python3.3]$ ls
easy-install.pth  nltk-2.0.4-py3.3.egg  numpy-1.8.0-py3.3.egg-info  PyYAML-3.10-py3.3-linux-i686.egg
ENV               numpy                 pip-1.4.1-py3.3.egg         virtualenv-1.10.1-py3.3.egg


[user@server python2.4]$ ls
easy-install.pth  git_remote_helpers  MySQL_python-1.2.3c1-py2.4-linux-i686.egg  pip-1.4.1-py2.4.egg  virtualenv-1.10.1-py2.4.egg  web

제가 한동안 조사해 본 내용이 많이 있습니다. 어떤 도움이라도 대단히 감사하겠습니다! 감사해요!

답변1

여러 가지 문제가 있습니다. 첫째, 최근 라이브러리(버전)가 더 이상 Python 2.4를 지원하지 않습니다.

virtualenv 1.7.2(2.4는 1.8 이후 더 이상 지원되지 않습니다.)

문제 없이 2.4에서 3.3으로 이동할 수 있을지 확신할 수 없습니다. 사용하는 실제 코드(제3자 코드 아님)를 조정해야 합니다. 적어도 중간 단계로 Python 2.7을 사용하는 것을 고려해 보겠습니다. 이는 2.4와 호환되며 많은 3.3 기능과 더 호환되는(3.3) 표준 라이브러리를 갖추고 있습니다.

콤보Python과 함께 제공되는 2to3 도구 외에도 도움이 될 수 있습니다.

관련 정보