import test.autotestÆÄÀ̽ã 1.4 ȤÀº ÀÌÀüÀ̶ó¸é, ´ÙÀ½À» »ç¿ëÇϼ¼¿ä
import autotest±× Å×½ºÆ® ¸ðµÒÀº ÆÄÀ̽ãÀÇ ¸ðµç »ç¾çÀ» Å×½ºÆ®ÇÏÁö´Â ¾Ê½À´Ï´Ù, ±×·¸Áö¸¸ ÆÄÀ̽ãÀÌ ½ÇÁ¦·Î ÀÛµ¿ÇÏ´ÂÁö È®ÁõÇϱâ À§ÇÏ¿© ¿À·£ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù.
ÁÖÀÇ: ¸¸¾à "make test"°¡ ½ÇÆÐÇÑ´Ù°í ÇØ¼, ´Ü¼øÈ÷ ±× Ãâ·ÂÀ» ´º½º±×·ì¿¡ ÆíÁöÇÏÁö ¸¶¼¼¿ä -- À̰ÍÀ¸·Î´Â ±× ÇÁ·Î±×·¥À» µð¹ö±×Çϱâ À§ÇÑ ÃæºÐÇÑ Á¤º¸°¡ µÇÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡, ¾î¶² Å×½ºÆ®°¡ ½ÇÆÐÇÏ´ÂÁö ¾Ë¾Æ ³»¼¼¿ä, ±×¸®°í ±× Å×½ºÆ®¸¦ ¼öµ¿À¸·Î »óÈ£´ëÈ ¸ðµå¿¡¼ ½ÇÇàÇϼ¼¿ä. ¿¹¸¦ µé¾î, "make test"°¡ test_spamÀÌ ½ÇÆÐÇß´Ù°í º¸°íÇϸé, À̰ÍÀ» »óÈ£´ëÈÀûÀ¸·Î Á¡°ËÇϼ¼¿ä:
import test.test_spamÀ̰ÍÀº ÀϹÝÀûÀ¸·Î ´õ¿í »ó¼¼ÇÑ Ãâ·ÂÀ» »êÃâÇϹǷΠ±× ÇÁ·Î±×·¥À» µð¹ö±×ÇϱâÀ§ÇØ Áø´ÜµÉ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ÆÄÀ̽㿡¼ ȤÀº ¶óÀ̺귯¸®¿¡¼, ¶Ç´Â ±× Å×½ºÆ®¿¡¼ ¹ö±×¸¦ ¹ß°ßÇÏ°Ô µÇ¸é, À̰ÍÀ» ¼Ò½ºÆ÷Áö(SourceForge)¿¡ ÀÖ´Â ÆÄÀ̽㠹ö±× ÃßÀû±â¿¡ º¸°íÇϼ¼¿ä:
http://sourceforge.net/tracker/?func=add&group_id=5470&atid=105470
#! /usr/local/bin/python --»óÈ£´ëÈÀûÀ¸·Î ÀÌ·¸°Ô »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù:
python -- script.py [options]ÁÖ¸ñÇÏ½Ç °ÍÀº ÀÛµ¿ÇÏ´Â getopt ±¸ÇöÀÌ ÆÄÀ̽㠹èÆ÷º»¿¡ (Python/getopt.c)·Î Á¦°øµÇÁö¸¸ ÀÚµ¿ÀûÀ¸·Î »ç¿ëµÇÁö´Â ¾Ê½À´Ï´Ù.
#readline readline.c -lreadline -ltermcap
ÁÖ¼®À» Á¦°Å Çϼ¼¿ä. ȯ°æ¼³Á¤ ¼±ÅûçÇ×ÀÎ --with-readlineÀº, Àû¾îµµ ÆÄÀ̽ã 2.0¿¡¼´Â ´õÀÌ»ó Áö¿øµÇÁö ¾Ê½À´Ï´Ù. readline ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ°í ±¸ÃàÇϴµ¥ ´ëÇÑ ¾à°£ÀÇ ÈùÆ®¸¦ µéÀÚ¸é: SGI IRIX 5¿¡¼´Â, ´ÙÀ½°ú °°ÀÌ rldefs.h¿¡ Ãß°¡ Çϼŵµ ÁÁ½À´Ï´Ù:
#ifndef sigmask #define sigmask(sig) (1L << ((sig)-1)) #endif¾î¶² ½Ã½ºÅÛ¿¡¼´Â, ¸î¸îÀÇ ¼Ò½º ÆÄÀÏÀÇ ÃÖ»ó´Ü¿¡ #include "rldefs.h"¸¦ Ãß°¡ÇÒ Çʿ伺ÀÌ ÀÖ½À´Ï´Ù, ±×¸®°í VPATH »ç¾çÀ» »ç¿ëÇϽŴٸé, fooÀÇ ¿©·¯ °ªµéÀ» À§Çؼ foo.o: foo.c ÇüÅÂÀÇ ÀÇÁ¸¼ºÀ» Makefile ÆÄÀÏ¿¡ Ãß°¡ÇؾßÇÒ Çʿ䰡 ÀÖÀ» °ÍÀÔ´Ï´Ù. readline ¶óÀ̺귯¸®´Â termcap ¶óÀ̺귯¸®ÀÇ »ç¿ëÀ» ¿ä±¸ÇÕ´Ï´Ù. ÀÌ¿Í °ü·ÃµÈ ¾Ë·ÁÁø ¹®Á¦ Çϳª´Â ±×°ÍÀÌ STDWIN°ú SGI GL ¶óÀ̺귯¸®¿ÍÀÇ Ãæµ¹À» ¾ß±âÇÏ´Â Ç׸ñÀ» Æ÷ÇÔÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. STDWINÀÇ Ãæµ¹Àº '#define werase w_erase'¶ó´Â ¶óÀÎÀ» stdwin.h ÆÄÀÏ¿¡ Ãß°¡Çϸé ÇØ°áµÉ ¼ö ÀÖ½À´Ï´Ù (STDWIN ¹èÆ÷º», ÇϺεð·ºÅ丮 H¿¡ ÀÖ½À´Ï´Ù). ÆÄÀ̽ã ȯ°æ¼³Á¤ ½ºÅ©¸³Æ®¿¡¼ °Á¦·Î ÅÒĸ(termcap) ¶óÀ̺귯¸®ÀÇ Á¤Àû ¹öÀüÀ» »ç¿ëÇϵµ·Ï ÇØÅ·ÇÔÀ¸·Î½á GL Ãæµ¹Àº ÇØ°áµÇ¾ú½À´Ï´Ù. readline¶óÀ̺귯¸®¿Í °ü·ÁµÈ ƯÁ¤ÇÑ ¹®Á¦µé¿¡ °ü½ÉÀÌ ÀÖÀ¸½Ã¸é ´º½º±×·ì gnu.bash.bug news:gnu.bash.bug À» Á¡°ËÇØ º¸¼¼¿ä (Àú´Â ÀÌ ±×·ìÀ» ÀÐÁö´Â ¾Ê¾ÒÁö¸¸ Á¦°¡ µè±â·Î ±×°÷ÀÌ readline ¹ö±×°¡ º¸°íµÇ¾î ÀÖ´Â °÷À̶ó°í ¾Ë°í ÀÖ½À´Ï´Ù).
http://sourceforge.net/tracker/?group_id=5470&atid=105470±×·¯¸é ¿ì¸®°¡ Á¶»çÇØ º¸°Ú½À´Ï´Ù. µÇµµ·ÏÀ̸é ÀÚ¼¼ÇÏ°Ô º¸³» ÁÖ½Ã±æ ¹Ù¶ø´Ï´Ù. ƯÈ÷, ¿©·¯ºÐÀÌ »ç¿ëÇϽô ÄÄÇ»ÅÍÀÇ Á¾·ù ¿î¿µÃ¼Á¦(±×¸®°í ¹öÀü)ÀÇ Á¾·ù¸¦ ¸»¾¸ÇØ ÁÖ½ÃÁö ¾ÊÀ¸¸é ¹«¾ùÀÌ ¹®Á¦ÀÎÁö ¿ì¸®°¡ ¾Ë¾Æ³»±â°¡ Èûµì´Ï´Ù. ÄÄÆÄÀÏ Ãâ·Â ·Î±×¸¦ °¡Áö°í °è½Ã¸é, ÆÄÀÏ ¿Ã¸®±â¸¦ »ç¿ëÇØ ÁÖ½Ã±æ ¹Ù¶ø´Ï´Ù -- ¸ðµç °ÍÀ» ¸Þ½ÃÁö ¹Ú½º¿¡ ºÙ¿© ³ÖÁö ¸¶¼¼¿ä.
¸¹Àº °æ¿ì¿¡, ¿ì¸®´Â °°Àº Çϵå¿þ¾î ȤÀº ¿î¿µÃ¼Á¦¿¡ Á¢±ÙÇÒ ¼ö´Â ¾ø½À´Ï´Ù, ±×·¯¹Ç·Î Á¦¹ß, ¿©·¯ºÐÀÌ ¼Ò½ºÆ÷Áö °èÁ¤À» °¡Áö°í °è½Ã¸é, ¿©·¯ºÐÀÇ º¸°í¼¸¦ ´Ù ä¿ö ³ÖÀ¸½Ã±â Àü¿¡ ·Î±×ÀÎÀ» Çϼ¼¿ä, ȤÀº °èÁ¤ÀÌ ¾øÀ¸½Ã´Ù¸é, ÀüÀÚ ¿ìÆí ÁÖ¼Ò¸¦ Æ÷ÇÔÇϼż ¿©·¯ºÐ¿¡°Ô Ãß°¡ Áú¹®À» ÇÒ¼ö ÀÖµµ·Ï ÇØ ÁÖ¼¼¿ä. ¼Ò½ºÆ÷Áö¿¡ óÀ½ ·Î±×ÀÎ ÇÏ½Ã°Ô µÇ¸é ¿©·¯ºÐÀÇ º¸°í¼¿¡ ´ëÇÏ¿© ¿¬±¸ÇÑ °»½Å»çÇ×ÀÌ ¿©·¯ºÐ¿¡°Ô º¸³»Áú °ÍÀÔ´Ï´Ù.
ÀÌ·¸°Ô ¼öÁ¤ÇÑ ÈÄ¿¡ ÆÄÀ̽ãÀ» À籸ÃàÇÏ·Á°í ½ÃµµÇϱâ Àü¿¡, config.cache ÆÄÀÏÀ» rmÀ¸·Î »èÁ¦ÇÏ°í ³ª¼, ¾Æ¸¶µµ ȯ°æ¼³Á¤ ½ºÅ©¸³Æ®¸¦ Àç½ÇÇàÇÒ Çʿ䰡 ÀÖÀ» °ÍÀÔ´Ï´Ù.
*shared*¸¦ °¡´ÉÇϵµ·Ï ÇÒ ¶§ ÀϾ´Ï´Ù. °øÀ¯ ¶óÀ̺귯¸® ÄÚµå´Â ¹Ýµå½Ã "-fpic"À¸·Î ÄÄÆÄÀÏÇÏ¿©¾ß ÇÕ´Ï´Ù. ¸¸¾à ±× ¸ðµâÀ» À§ÇÑ a.o ÆÄÀÏÀÌ ÀÌ¹Ì Á¤Àû ¿¬°á·Î ÄÄÆÄÀϵǾî Á¸ÀçÇÑ´Ù¸é, ±×°ÍÀ» Á¦°ÅÇϰųª ȤÀº ±× ¸ðµâÀÇ µð·ºÅ丮¿¡¼ "make clean"À» Çϼ¼¿ä.
[¾Øµð ´õ½ºÆ®¸¸(Andy Dustman)] glibc ½Ã½ºÅÛ (Áï. RedHat 5.0+)¿¡ ´ëÇØ¼ ¸»ÇÏÀÚ¸é, LinuxThreads ´Â Æó±âµÇ°í POSIX ¾²·¹µå (-lpthread)°¡ ´ë½ÅÇÏ°Ô µÇ¾ú½À´Ï´Ù. ÀÌÀüÀÇ RedHatÀ¸·ÎºÎÅÍ ¾÷±×·¹À̵å Çϼ̴ٸé, LinuxThreads¸¦ "rpm -e linuxthreads linuxthreads-devel"À¸·Î Á¦°ÅÇϼ¼¿ä. ±×¸®°í --with-thread¸¦ À§¿Í °°ÀÌ Àç¼³Á¤ÇϽʽÿÀ.
(¶ÇÇÑ ÁÖÀÇÇÏ½Ç °ÍÀº ÆÐÄ¡µÇÁö ¾ÊÀº ÆÄÀ̽ã 1.5.1À» Tcl/Tk 7.6/4.2 ÀÌÀü¿¡ ´ëÇÏ¿© ÄÄÆÄÀÏ ÇϽøé, Tcl_Finalize¿¡ °üÇÑ ¿¡·¯¸¦ ¸ÂÀÌÇÕ´Ï´Ù. ´ÙÀ½ÀÇ 1.5.1 ÆÐÄ¡ ÆäÀÌÁö http://www.python.org/1.5/patches-1.5.1/¸¦ ÂüÁ¶Çϼ¼¿ä.)
Tcl/Tk¸¦ À§ÇÑ 64-bit ¹ö±×¼öÁ¤ ¹öÀüÀÌ ÀÖ½À´Ï´Ù; ´ÙÀ½À» ÂüÁ¶Çϼ¼¿ä
http://grail.cnri.reston.va.us/grail/info/patches/tk64bit.txt
set PYTHONPATH=c:\python;c:\python\lib;c:\python\scripts
(ÆÄÀ̽ãÀÌ c:\python¿¡ ¼³Ä¡µÇ¾î ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù)
À̰ÍÀº MSVC¾Æ·¡¿¡¼ DLLÀ» ±¸ÃàÇÒ ¶§ ÀϾ´Ï´Ù. À̰Ϳ¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀº µÎ°¡Áö°¡ ÀÖ½À´Ï´Ù: ±× ¸ðµâÀ» C++·Î ÄÄÆÄÀÏ Çϰųª, ȤÀº Äڵ带 ´ÙÀ½°ú °°ÀÌ º¯°æÇÏ´Â °ÍÀÔ´Ï´Ù:
statichere PyTypeObject bstreamtype = { PyObject_HEAD_INIT(NULL) /* must be set by init function */ 0, "bstream", sizeof(bstreamobject),
...
void initbstream() { /* Patch object type */ bstreamtype.ob_type = &PyType_Type; Py_InitModule("bstream", functions); ... }
% python script.py ...some output... % python script.py >file % cat file % # no output % python script.py | cat % # no output %À̹«µµ À̰ÍÀÇ ¿øÀÎÀÌ ¹«¾ùÀÎÁö´Â ¸ð¸¨´Ï´Ù, ±×·¯³ª ¸®´ª½ºÀÇ ¹ö±×ÀÓÀº È®½ÇÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ¸®´ª½º »ç¿ëÀÚµéÀº ÀÌ°Í ¶§¹®¿¡ ¿µÇâÀ» ¹ÞÁö´Â ¾Ê½À´Ï´Ù.
Àû¾îµµ ÇѰ³ÀÇ º¸°í°¡ ÀÖ´Ù¸é (´õ »õ·Î¿î ¹öÀüÀ¸·Î) ¸®´ª½º¿Í ÆÄÀ̽ãÀ» Àç ¼³Ä¡Çϰí ÀÌ ¹®Á¦¸¦ Á¦°ÅÇß´Ù°í ÇÕ´Ï´Ù; ±×·¡¼ À̰ÍÀÌ ¾Æ¸¶µµ ÇØ°áÃ¥ÀÌ ¾Æ´Ò±î ÇÕ´Ï´Ù.
File "<stdin>", line 1 import sys ^ Syntax Error: "invalid syntax"±×°ÍÀ» ½º½º·Î ÄÄÆÄÀÏ ÇÏ¿´½À´Ï±î? À̰ÍÀº º¸Åë libc 5.4.x¿Í ÀÌÀüÀÇ libc »çÀÌÀÇ ºñȣȯ¼º ¶§¹®¿¡ ¾ß±âµË´Ï´Ù. ƯÈ÷³ª, libc 5.4¿Í ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥µéÀº libc 5.2°¡ ¼³Ä¡µÈ ½Ã½ºÅÛ¿¡¼´Â ctype.h ÆÄÀÏÀÌ ±úÁ® Àֱ⠶§¹®¿¡ ºÎÁ¤È®ÇÑ °á°ú¸¦ »êÃâÇÕ´Ï´Ù. ÀÌ °æ¿ì¿¡´Â, ÆÄÀ̽ãÀÌ ¾î¶² ¹®ÀÚ°¡ ±âÈ£ÀÎÁö µîµîÀ» ÀνÄÇÒ ¼ö ¾ø½À´Ï´Ù. ÇØ°áÃ¥Àº, ¼³Ä¡µÈ ÀÌÁøÆÄÀÏÀ» ±¸ÃàÇÒ ¶§¿¡ »ç¿ëÇÑ C ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ´ø°¡, ¶Ç´Â ÆÄÀ̽ãÀ» ½º½º·Î ÄÄÆÄÀÏ ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ÇÒ ¶§¿¡, ÄÄÆÄÀÏ·¯°¡ »ç¿ëÇÑ C ¶óÀ̺귯¸® ¸Ó¸®ºÎ ÆÄÀϰú ¼³Ä¡µÈ C ¶óÀ̺귯¸®°¡ ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎÇϼ¼¿ä.
[Martin v. LoewisÀÇ ´äº¯À¸·ÎºÎÅÍ Àοë]
Ãß°¡ [Andreas JungÀ¸·ÎºÎÅÍ Àοë]: libc 5.4.xÀ¸·Î ¾÷±×·¹À̵åÇÏ¿´°í, ±×·¡µµ ¹®Á¦°¡ Áö¼ÓµÇ¸é, ±¸Çü ¹öÀüÀÇ libc¸¦ À§ÇÑ ¶óÀ̺귯¸® °æ·Î¸¦ Á¡°ËÇϼ¼¿ä. °Å±â¿¡ ÀÖ´Â libs¿Í header ÆÄÀÏ·Î libc¸¦ ±ú²ýÇÏ°Ô °»½ÅÇϼ¼¿ä. ±×¸®°í ³ª¼ ¸ðµÎ ´Ù ÀçÄÄÆÄÀÏÇϼ¼¿ä.
>>> from Tkinter import * >>> root = Tk() XIO: fatal IO error 0 (Unknown error) on X server ":0.0" after 45 requests (40 known processed) with 1 events remaining.ÀÌÀ¯´Â ±âº» Xlib°¡ ¾²·¹µå¸¦ Áö¿øÇϵµ·Ï ±¸ÃàµÇÁö ¾Ê¾Ò±â ¶§¹®ÀÔ´Ï´Ù. Xlib¸¦ ¾²·¹µå°¡ °¡´ÉÇϵµ·Ï À籸ÃàÇÏ¸é ¹®Á¦°¡ »ç¶óÁý´Ï´Ù. ´ë¾ÈÀûÀ¸·Î, ÆÄÀ̽ãÀ» ¾²·¹µå ¾øÀÌ À籸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù (¸ÕÀú "make clean" Çϼ¼¿ä!).
(Disclaimer: this is from memory.)
python >>> import _tkinter >>> import Tkinter >>> Tkinter._test()À̰ÍÀº Çϳª´Â "Click me" ±×¸®°í "Quit"¶ó´Â, µÎ °³ÀÇ ¹öưÀ» °¡Áø À©µµ¿ì Çϳª¸¦ ÆË¾÷½Ãŵ´Ï´Ù.
ù ¹øÂ° ¼¼ú¹®(import _tkinter)ÀÌ ½ÇÆÐÇϸé, ¿©·¯ºÐÀÇ ÆÄÀ̽㠼³Ä¡°¡ ¾Æ¸¶µµ Tcl/Tk¸¦ Áö¿øÇϵµ·Ï ¼³Á¤µÇÁö ¾ÊÀº °ÍÀÔ´Ï´Ù. À¯´Ð½º¿¡¼, Tcl/Tk¸¦ ¼³Ä¡ÇÏ¿´´Ù¸é, _tkinter ¸ðµâ°ú TKPATH ȯ°æ º¯¼ö¸¦ »ç¿ë°¡´ÉÇϵµ·Ï Modules/SetupÀ» ÆíÁýÇÑ ÈÄ¿¡ ÆÄÀ̽ãÀ» À籸ÃàÇÏ¿©¾ß ÇÕ´Ï´Ù.
Tcl/Tk ¹öÀü ¹øÈ£ ºÒÀÏÄ¡ ȤÀº TCL_LIBRARY¾øÀ½ ¶Ç´Â TK_LIBRARY ȯ°æ º¯¼öµé¿¡ °üÇÑ ºÒÆòµéÀ» ¸¸³ª°Ô µÉ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °ÍµéÀº Tcl/Tk ¼³Ä¡ ¹®Á¦¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù.
ÈçÇÑ ¹®Á¦´Â ¼³Ä¡µÈ Tcl/Tk ¶óÀ̺귯¸®ÀÇ ¹öÀü°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â tcl.h¿Í tk.h ¹öÀüÀ» ¼³Ä¡ÇÏ´Â °ÍÀÔ´Ï´Ù; À̰ÍÀº º¸Åë ¿¬°áÀÚ ¿¡·¯¸¦ ¾ß±âÇϰųª ȤÀº (µ¿Àû ÀûÀ縦 »ç¿ëÇÒ ¶§) °øÀ¯ ¶óÀ̺귯¸®¸¦ ÀûÀçÇÏ´Â µ¿¾È¿¡ '½Éº¼ ¾øÀ½' ºÒÆòÀ¸·Î °á·ÐÁö¾îÁý´Ï´Ù.
À¯´Ð½º¿¡¼, readline ¸ðµâÀ» °¡´ÉÇϵµ·Ï Çϼ̴ٸé (Áï. À̸ƽº-½ºÅ¸ÀÏÀÇ ¸í·É¾î ¶óÀÎ ÆíÁý°ú bash-½ºÅ¸ÀÏÀÇ ¸í·É±â¾ïÀÌ ÀÛµ¿ÇÑ´Ù¸é), ¹®¼ÈµÇÁö ¾ÊÀº Ç¥ÁØ ¶óÀ̺귯¸® ¸ðµâ "rlcompleter"¸¦ ¼öÀÔÇÔÀ¸·Î½á À̰ÍÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. °£´ÜÇÑ ½Äº°ÀÚ¸¦ ä¿ö ³ÖÀ¸¸é, __main__¿¡ Àִ Ű¿öµå, ³»Àå ±×¸®°í Àü¿ªº¯¼öµéÀ» ä¿öÁÝ´Ï´Ù; NAME.NAME...À» ¿Ï¼ºÇÒ ¶§, ±× Ç¥Çö½ÄÀ» ¸¶Áö¸· Á¡±îÁö Æò°¡ÇÏ¿©(!) ±× ¼Ó¼ºµéÀ» ä¿ö³Ö½À´Ï´Ù.
ÀÌ·±½ÄÀ¸·Î, "import string"À», "string."À̶ó°í ŸÀÚÇϰí, ¿Ï¼º ۸¦ µÎ¹ø ´©¸£¸é, ±× ¹®ÀÚ¿ ¸ðµâÀÌ Á¤ÀÇÇÑ À̸§µéÀÇ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
ÆÁ: ÅÇ Å°¸¦ ¿Ï¼º Ű·Î »ç¿ëÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ È£ÃâÇϼ¼¿ä
readline.parse_and_bind("tab: complete")À̰ÍÀ» ~/.pythonrc ÆÄÀÏ¿¡ ¹èÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç, PYTHONSTARTUP ȯ°æ º¯¼ö¸¦ ~/.pythonrc¿¡ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ÆÄÀ̽ãÀ» »óÈ£´ëÈÀûÀ¸·Î ½ÇÇàÇÒ ¶§¸¶´Ù ¿Ï¼º±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÉ °ÍÀÔ´Ï´Ù.
ÁÖÀÇ (´õ ÀÚ¼¼È÷ ¾Ë·Á¸é rlcompleter.py¸¦ À§ÇÑ ¹®¼È ¹®ÀÚ¿(docstring)À» ÂüÁ¶Çϼ¼¿ä):
* ¸¸¾à __getattr__ ³¬¾ÆÃ¤±â¸¦ °¡Áö°í ÀÖ´Â °´Ã¼°¡ ¹ß°ßµÈ´Ù¸é NAME.NAME... ÇüŸ¦ Æò°¡ÇÏ´Â °ÍÀº ÀÓÀÇÀûÀÎ ¾îÇø®ÄÉÀ̼ÇÀ» ½ÇÇàµÇ¾î¾ß ÇÒ ÄÚµå·Î Á¤ÀÇÇÏ¿© ¹ö¸± ¼öµµ ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ »ç¾çÀ» °¡´ÉÇÏ°Ô ÇÏ´Â °ÍÀº ¾îÇø®ÄÉÀÌ¼Ç (ȤÀº »ç¿ëÀÚ)ÀÇ Ã¥ÀÓÀ̱⠶§¹®Àε¥, À̰ÍÀº Çã¿ëÇÒ ¸¸ÇÑ À§ÇèÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ´õ¿í º¹ÀâÇÑ Ç¥Çö½Ä (¿¹¸¦µé¾î, ÇÔ¼ö È£ÃâÀ̳ª ¿¬»êÀ» ÁöÇ¥ÈÇÏ´Â °Íµé)Àº Æò°¡µÇÁö ¾Ê½À´Ï´Ù.
* GNU readline´Â ¶ÇÇÑ ³»Àå ÇÔ¼ö input()°ú raw_input()¿¡ ÀÇÇØ¼ »ç¿ëµË´Ï´Ù, ±×¸®ÇÏ¿© À̰͵éÀº ¶ÇÇÑ ±× ¿Ï¼º»ç¿ë ¶§¹®¿¡ ÇýÅÃÀ» ¹Þ±âµµ/°íÅëÀ» ¹Þ±âµµ ÇÕ´Ï´Ù. ºÐ¸íÈ÷ »óÈ£´ëÈÀûÀÎ ¾îÇø®ÄÉÀ̼ÇÀº ÀڽŸ¸ÀÇ ¿Ï¼º ±â´ÉÀ» ÁöÁ¤ÇÏ°í ¸ðµç ÀԷ¿¡ ´ëÇÏ¿© raw_input()À» »ç¿ëÇÔÀ¸·Î½á ÇýÅÃÀ» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
* Ç¥ÁØÀÔ·ÂÀÌ tty ÀåÄ¡°¡ ¾Æ´Ï¶ó¸é, GNU readlineÀº Àý´ë·Î »ç¿ëµÇÁö ¾Ê½À´Ï´Ù, ±×¸®°í ÀÌ ¸ðµâÀº (±×¸®°í readline ¸ðµâ)Àº Á¶¿ëÇÏ°Ô ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
À̰ÍÀ» ´Ù¸¥ ¸ðµç Ç÷§Æû¿¡¼ ÀÛµ¿Çϵµ·Ï ÇÏ´Â °ÍÀº Á¤¸» ¾Ç¸ùÀÔ´Ï´Ù. °øÀ¯ ¶óÀ̺귯¸®ÀÇ À̽ļºÀº °íÅëÀÔ´Ï´Ù. ³× ¹°·Ð, GNUÀÇ libtool¿¡ °üÇÏ¿© ¾Ë°í ÀÖ½À´Ï´Ù -- ±×·¯³ª ±×°ÍÀº ÆÄÀÏ À̸§ÀÇ °ü·Ê µîµîÀ» »ç¿ëÇϱ⸦ ¿ä±¸Çϰí, Áö±Ý »ç¿ëÇϰí ÀÖ´Â ¸ðµç makefile°ú ¼³Á¤µµ±¸µéÀ» ¿ÏÀüÇÏ°Ô ±×¸®°í öÀúÇÏ°Ô ÀçÀÛ¼º Çϵµ·Ï ¿ä±¸ÇÒ °ÍÀÔ´Ï´Ù.
½ÇÁ¦ÀûÀ¸·Î, ÆÄÀ̽ãÀ» ³»ÀåÇÑ ¾îÇø®ÄÉÀ̼ÇÀº ¾ø½À´Ï´Ù -- ´õ¿í ´õ ÀϹÝÀûÀÎ °ÍÀº ÆÄÀ̽ã È®ÀåÀ» º¸À¯ÇÏ´Â °ÍÀ̰í, ÀÌ¹Ì °øÀ¯ ¶óÀ̺귯¸®ÀÔ´Ï´Ù. ¶ÇÇÑ, ¾ö°ÝÇÑ ³»ÀåÀÚµéÀº ¶§¶§·Î ±×µéÀÌ »ç¿ëÇϰí ÀÖ´Â ÆÄÀ̽㠹öÀü°ú ¼³Á¤¿¡ °üÇÏ¿© ÀüÀûÀÎ ÅëÁ¦¸¦ ¿øÇÕ´Ï´Ù. ±×·¡¼ ¾î¶µç Ç¥ÁØ °øÀ¯ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϱ⸦ ¿øÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ±×·¡¼ ¸¹Àº ¾îÇÃÀÌ ÆÄÀ̽ãÀ» ³»ÀåÇÒ ¶§ °ø°£À» Àý¾àÇÑ´Ù´Â µ¿±â°¡ ÀÌ·ÐÀûÀ¸·Î´Â ÁÁÁö¸¸, ½ÇÁ¦ÀûÀ¸·Î ±× ¸¸Å ¸¹ÀÌ Àý¾àÇØ ÁÙÁö´Â Àǹ®ÀÔ´Ï´Ù. (±×·¯¹Ç·Î Àú´Â °øÀ¯ ¶óÀ̺귯¸®¸¦ ¸¸µå´Â °Í¿¡ Á߿伺À» µÎÁö ¾Ê½À´Ï´Ù.)
¸®´ª½º ½Ã½ºÅÛÀ» À§Çؼ´Â, libpython1.5.so¸¦ ¸¸µå´Â °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù (Ãâó´Â Minotaur ÇÁ·ÎÁ§Æ® À¥ÆäÀÌÁö http://www.equi4.com/minotaur/minotaur.html ÀÔ´Ï´Ù.):
make distclean ./configure make OPT="-fpic -O2" mkdir .extract (cd .extract; ar xv ../libpython1.5.a) gcc -shared -o libpython1.5.so .extract/*.o rm -rf .extract
In file included from /usr/include/sys/stream.h:26, from /usr/include/netinet/in.h:38, from /usr/include/netdb.h:96, from ./socketmodule.c:121: /usr/include/sys/model.h:32: #error "No DATAMODEL_NATIVE specified"ÇØ°áÃ¥: GCC¸¦ Solaris 2.6¿ëÀ¸·Î ±¸ÃàÇϼ¼¿ä. ´Ü¼øÈ÷ fixincludes¸¦ Àç½ÇÇà ÇÒ ¼öµµ ÀÖ°ÚÁö¸¸, »ç¶÷µéÀº ±×·¸°Ô ÇÏ´Â °ÍÀ» ¼º°øÇÑ °ÍÀ¸·Î Âø°¢ÇÕ´Ï´Ù.
±â»Û¸¶À½À¸·Î ±¸ÃàÇÏ°í ¼³Á¤ÇÑ ÈÄ¿¡ "make clean"À» »ç¿ëÇÏ¿© source/build µð·ºÅ丮ÀÇ Å©±â¸¦ ÁÙÀ̼¼¿ä. ÀÌ¹Ì ÆÄÀ̽ãÀ» ±¸ÃàÇϱ⸦ ½ÃµµÇØ º¸¾Ò°í ´Ù½Ã ½ÃÀÛÇϰíÀÚ ÇÑ´Ù¸é, "make clobber"¸¦ »ç¿ëÇÏ¿©¾ß¸¸ ÇÕ´Ï´Ù. ±×°ÍÀº "make clean"À» ÇÏ¿©ÁÖ°í ¶ÇÇÑ ÀÌÀüÀÇ ±¸ÃàÀ¸·ÎºÎÅÍ ºÎºÐÀûÀ¸·Î ±¸ÃàµÈ ÆÄÀ̽㠶óÀ̺귯¸®¿Í °°Àº ÆÄÀϵéÀ» Á¦°ÅÇÕ´Ï´Ù.
¹ö±×: http://sourceforge.net/tracker/?group_id=5470&atid=105470
ÆÐÄ¡: http://sourceforge.net/tracker/?group_id=5470&atid=305470
¼Ò½ºÆ÷Áö¿¡ °èÁ¤À» °¡Áö°í °è½Ã´Ù¸é, ¹ö±× º¸°í¸¦ Á¦ÃâÇϽñâ Àü¿¡ ¸ÕÀú ·Î±×ÀÎ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù; ÀÌ·¸°Ô ÇÏ½Ã¸é µÚ-µû¸£´Â ¹®Á¦µéÀÌ ¹ß»ýÇÏ¿´À» ¶§ ¿ì¸®°¡ ¿©·¯ºÐÀÇ º¸°í¿¡ °üÇÏ¿© ´õ ½±°Ô ¿©·¯ºÐ¿¡°Ô Á¢±ÙÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¿©·¯ºÐÀÇ ¹ö±×¿¡ °üÇÑ ÀÛ¾÷°ú µ¿½Ã¿¡ ¼Ò½ºÆ÷Áö°¡ °»½Å»çÇ×À» ¿©·¯ºÐ¿¡°Ô º¸³»ÁÙ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¼Ò½ºÆ÷Áö¿¡ °èÁ¤ÀÌ ¾øÀ¸½Ã´Ù¸é, ¿©·¯ºÐÀÇ À̸§°ú ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ º¸°í¼ÀÇ ÇÑ ºÎºÐ¿¡ ³²°ÜÁÖ½Ã±æ ºÎŹµå¸³´Ï´Ù.
symbol PyExc_RuntimeError: referenced symbol not found
ÆÄÀ̽ã 1.5.2, ¼Ö¶ó¸®½º 7, ±×¸®°í gcc 2.95.2¾Æ·¡¿¡¼ ȯ°æ¼³Á¤ ½ºÅ©¸³Æ®¿¡ ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ȯ°æ¼³Á¤Àº make º¯¼ö¿¡ LINKFORSHARED=-Xlinker-export-dynamicÀ¸·Î ¼³Á¤µÇ¾î¾ß Çϴµ¥.
Modules/Makefile¿¡¼,
¼öµ¿À¸·Î ÀÌ ¶óÀÎÀ» Modules/Makefile¿¡ »ðÀÔÇϼ¼¿ä. À̰ÍÀ¸·Î ÆÄÀ̽ãÀÌ °øÀ¯ ¶óÀ̺귯¸® È®ÀåÀ» ÀûÀçÇϵµ·Ï ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù (xxx.so).
current/lib/profile-calibration.html
±×·¯¸é ±× ȸ±Í Å×½ºÆ® "test___all__"Àº ÆÄÀ̽ãÀÇ ¼Ò½º µð·ºÅ丮¿¡¼ "make test"¸¦ »ç¿ëÇÏÁö ¾Ê°í ¼öµ¿À¸·Î ±× ȸ±Í Å×½ºÆ®¸¦ ½ÇÇàÇÏ¿´À½¿¡µµ ºÒ±¸ÇÏ°í ½ÇÆÐÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÏÀº ÃøÁ¤µÉ ¼º´ÉÃÖÀûÈ ¸ðµâÀ» ´ã°í ÀÖ´Â µð·ºÅ丮¸¦ Æ÷ÇÔÇϵµ·Ï PYTHONPATH ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏ°Ô µÇ¸é ÀϾ´Ï´Ù. ¾Æ¸¶µµ ±× ¼º´ÉÃÖÀûȱ⸦ ±¸Çü ¹öÀüÀÇ ÇÁ·ÎÆÄÀÏ ¸ðµâÀ» »ç¿ëÇÏ¿© ÃøÁ¤ÇϼÌÀ» ÅÙµ¥, ±× ¸ðµâ¿¡´Â __all__ °ªÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸ç, ÆÄÀ̽ã 2.1. ¹öÀüºÎ·Î Ãß°¡µÇ¾ú½À´Ï´Ù.
±× ¹®Á¦´Â ÇØ°áµÉ ¼ö Àִµ¥ ±× ±¸Çü ¼º´ÉÃÖÀûÈ ÃøÁ¤ ¸ðµâÀ» Á¦°ÅÇϰí ÃÖ±ÙÀÇ ¹öÀüÀ» »ç¿ëÇϼż »õ·ÎÀÌ ÃøÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÆÄÀ̽ãÀÇ °¢ ¹öÀü¿¡ ´ëÇÏ¿© Àç-ÃøÁ¤ÇÒ Çʿ䰡 ÀÖÀ¾´Ï´Ù, ¿Ö³ÄÇÏ¸é ¼º´ÉÀÇ Æ¯Â¡Àº ¼º´ÉÃÖÀûÈ¿¡ ¿µÇâÀ» ÁÖ°ÔµÇ¸é ¹Ì¹¦ÇÏ°Ô º¯°æµÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.