Python 패키지를 올바르게 설치하는 방법은 무엇입니까?

Python 패키지를 올바르게 설치하는 방법은 무엇입니까?

Slackware 시스템을 실행하고 Python 코드를 실행하려고 하는데 다음과 같은 오류가 많이 발생합니다.

>>> import urllib2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/urllib2.py", line 91, in <module>
    import hashlib
  File "/usr/lib/python2.6/hashlib.py", line 136, in <module>
    md5 = __get_builtin_constructor('md5')
  File "/usr/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: No module named _md5

urllib2는 Python을 위한 매우 기본적인 라이브러리로 간주됩니다. Python을 작동시키려면 어떻게 해야 합니까?

그 이유는 이것이 urllib2다음에 의존하는 것 같습니다 praw.https://github.com/praw-dev/praw/issues/135

pip로 설치하려고 하면 다음과 같은 결과가 나타납니다.

Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from setuptools import setup
ImportError: No module named setuptools

그래서 setuptools를 설치하려고 합니다.

running install
Traceback (most recent call last):
  File "setup.py", line 94, in <module>
    scripts = scripts,
  File "/usr/lib/python2.6/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command
    cmd_obj.run()
  File "/root/setuptools-0.6c11/setuptools/command/install.py", line 76, in run
    self.do_egg_install()
  File "/root/setuptools-0.6c11/setuptools/command/install.py", line 85, in do_egg_install
    easy_install = self.distribution.get_command_class('easy_install')
  File "/root/setuptools-0.6c11/setuptools/dist.py", line 395, in get_command_class
    self.cmdclass[command] = cmdclass = ep.load()
  File "/root/setuptools-0.6c11/pkg_resources.py", line 1954, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/root/setuptools-0.6c11/setuptools/command/easy_install.py", line 21, in <module>
    from setuptools.package_index import PackageIndex, parse_bdist_wininst
  File "/root/setuptools-0.6c11/setuptools/package_index.py", line 2, in <module>
    import sys, os.path, re, urlparse, urllib2, shutil, random, socket, cStringIO
  File "/usr/lib/python2.6/urllib2.py", line 91, in <module>
    import hashlib
  File "/usr/lib/python2.6/hashlib.py", line 136, in <module>
    md5 = __get_builtin_constructor('md5')
  File "/usr/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: No module named _md5

답변1

Python 모듈을 사용 pip하거나 설치할 수 있습니다 .easy_install

 $ pip install <package-name>

편집하다:

urllib2패키지를 설치하려고 하면 real name of requirement urllib2 is urllib3다음과 같은 결과가 나타납니다.

pradeep@pradeep-laptop:~$ sudo pip install urllib2
Downloading/unpacking urllib2
  Real name of requirement urllib2 is urllib3
  Could not find any downloads that satisfy the requirement urllib2
No distributions at all found for urllib2
Storing complete log in /home/pradeep/.pip/pip.log
pradeep@pradeep-laptop:~$ sudo pip install urllib3
Downloading/unpacking urllib3
  Downloading urllib3-1.5.tar.gz
  Running setup.py egg_info for package urllib3

Installing collected packages: urllib3
  Running setup.py install for urllib3

Successfully installed urllib3
Cleaning up...
pradeep@pradeep-laptop:~$ python
Python 2.7.3 (default, Apr 20 2012, 22:39:59) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib3
>>> 

편집 2:

소스에서 python-pip를 설치할 수 있습니다.

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz
$ tar xzf pip-0.7.2.tar.gz
$ cd pip-0.7.2
$ python setup.py install

답변2

Pip은 Python 모듈을 설치하는 올바른 방법입니다. Easy_installer는 기본 Python 패키지 설치 프로그램이지만 pip가 이를 대체하므로 일반적으로 선호되어야 합니다. 단 일부 패키지는 easy_installer를 통해서만 설치할 수 있습니다.

다른 답변에서 다루지 않는 것은 Slackware 시스템에 소프트웨어를 설치하는 방법입니다. 새로운 소프트웨어를 직접 구축하는 대신 Slackbuilds.org를 확인해 보세요. 저장소는 소프트웨어 소스에 대한 링크뿐만 아니라 소프트웨어를 컴파일하고 Slackware의 패키지 관리 시스템 installpkg/updatepkg/removepkg로 쉽게 설치/제거/업그레이드하고 추적할 수 있는 Slackware 패키지를 만들기 위한 Slackware의 사용자 정의 빌드 스크립트를 공유합니다. Slackbuilds를 사용하면 다른 slackbuilds 패키지에 대한 종속성에 대해서도 알 수 있습니다. slackbuilds는 전체 Slackware 설치를 가정하고 표준 Slack 패키지에 대한 종속성을 알려주지 않습니다.

Slack 14.0을 가정하면 다음이 필요합니다. http://slackbuilds.org/repository/14.0/python/pip/ http://slackbuilds.org/repository/14.0/python/distribute/

마지막으로 Slackware에 대한 보다 포괄적이고 자동화된 패키지 관리를 보려면 slackpkg 및 sbopkg를 확인하세요. Slackware는 slackpkg 또는 slackbuild를 공식적으로 지원하지 않지만 널리 사용되고 잘 유지 관리됩니다.

관련 정보