рд╕рднреА рдХреЗ рд▓рд┐рдП рд╢реБрдн рджрд┐рди {рджрд┐рди рдХреЗ рд╕рдордп}!
рдЖрдЬ рдХрд╛ рд╕рдордп рдЖрдкрдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреА рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХрд╛ рд╣реИ, рдЬрдм рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдПрдордПрд╕ рд╡рд┐рдЬреБрдЕрд▓ рд╕реА ++ рдкрд░ рдмрдиреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд╕реА ++ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрдЦрдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реБрдП, рдмреВрд╕реНрдЯ.рдкрд╛рдпрдереЙрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдпрдерди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдк Python 3.x рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкрд░ Windows OS рдХреЗ рддрд╣рдд C ++ рдкрд░ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк Pyon рдкрд░ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП C ++ рдореЗрдВ рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдХреЗ рд╕рдмрд╕реЗ рддреНрд╡рд░рд┐рдд рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдкрд╛рда рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрдгрдирд╛ рдХреЗ рдШрдВрдЯреЗ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдмреЛрд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирдИ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрд╕реНрдХрд░рдг 3.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рдореЗрдВ, рдХреЗрд╡рд▓ рдкрд╛рда рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдкрд╛рда рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдПрдирдХреЛрдбреЗрдб рд╣реИ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдмрд╣реБрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗ рддрд▓рд╛рдХрд╢реБрджрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╕рдВрдЦреНрдпрд╛ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ред
"!".encode('cp1251')
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ "рд╣реЗрд▓реЛ!" рд▓рд╛рдЗрди рд╕реНрд╡рдпрдВ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд░рд╣реЗрдЧреА рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдерд╛, рдЪрд╛рд╣реЗ рдЖрдк рдЗрд╕реЗ рд░реВрд╕, рдЕрдореЗрд░рд┐рдХрд╛ рдпрд╛ рдЪреАрди рдореЗрдВ рджреЗрдЦреЗрдВ, рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдореИрдХрдУрдПрд╕ рдкрд░, рдпрд╣ "рд╣реИрд▓реЛ!" рд▓рд╛рдЗрди рд╣реА рд░рд╣реЗрдЧреАред рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ str.encode (рдПрдиреНрдХреЛрдбрд┐рдВрдЧ) рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдорд╛рди рдореВрд▓реНрдп рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рдо рдХрд╣рд╛рдВ рд╣реИрдВ рдФрд░ рд╣рдо рдХрд┐рд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдЕрджреНрднреБрдд рд╣реИ!
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдкреГрдереНрд╡реА рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред рдРрд╕реА рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рд╣реИ ...
рд╕рдВрдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдПрдордПрд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЕрджреНрднреБрдд рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдмрдврд╝рдХрд░, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ C ++ рдХреА рд╕рднреА рд▓рд╛рдЗрдиреЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЛрдб рдкреЗрдЬ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЧрд╛рд░рдВрдЯреА рд╣реИрдВред рдпрд╣реА рд╣реИ, рд░реВрд╕ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд▓рд╛рдЗрдиреЗрдВ рд╣рдореЗрд╢рд╛ '
cp1251 ' рдореЗрдВ
рд╣реЛрдВрдЧреА ред рдФрд░ рдпрд╣ рд╕рдм рдареАрдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдПрдХ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯред "рд╣реИрд▓реЛ" рдлреЙрд░реНрдо рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде Microsoft-рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде C ++ рдореЗрдВ рдпрд╣ рдХрд┐рддрдирд╛ рдЕрджреНрднреБрдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЗрд╕ рддрдереНрдп рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ рдХрд┐ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА cp1251 рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдорд┐рд▓рд╛ рд╣реИред рдХреЛрдб рдХреЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдЬреЛ std :: string рдФрд░ char * рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗред
рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рд╕реЗ C ++ рддрдХ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ char * рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди 3.x рдореЗрдВ рд╕рднреА рддрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдо рд╕реЗ рдХрдо UTF-8 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ рдФрд░ GC рдФрд░ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦреЗ рдЧрдП рд╣реИрдВред ред рдЗрд╕рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ: Microsoft рд╕реЗ рдпреВрд╕реАрдПрд╕ -2 рдХреЛ рдпреВрдирд┐рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд░реВрд╕ рдореЗрдВ рдЖрдкрдХреА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрдм рд╡рд┐рди -1251 рд╕реЗ рдпреВрдЯреАрдПрдл -8 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред
рдЕрдм рдлреИрд╕рд▓рд╛ред
рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Python 3.x рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ Python 3.3 рд╣реИ), рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд╡реАрдирддрдо рдХреЛ рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рд▓реЗрдВ:
www.python.org/download/releasesрдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрднрд╡рддрдГ MS Visual Studio рднреА рд╣реИ (рдлрд┐рд▓рд╣рд╛рд▓, VS2012 рдмрд╛рдж рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА VS2010 рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реЛрдВрдЧреЗ)ред
рдЕрдкрдиреЗ рд╕реА ++ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Boost.Python рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд▓рдЧрднрдЧ рдорд╛рдирдХ рдмреВрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ:
www.boost.org (рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 1.52 рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдФрд░ 1.44 рддрдХ рд╕рд╣реА рд╣реИ)ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рдФрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, Boost.Python рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ Boost.Python рдХреЛ рдирд┐рдореНрди Boost.Build рдХрдорд╛рдВрдб (рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ bjam рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
b2 --with-python --build-type=complete
рдпрджрд┐ рдЖрдкрдиреЗ x64 рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди 3.x рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛-рдореЙрдбрд▓ = 64 рднреА рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП Boost.Build рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
рдирддреАрдЬрддрди, {BoostDir} \ рд╕реНрдЯреЗрдЬ \ lib \ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреВрд╕реНрдЯ-рдкрд╛рдЗрдерди * рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЬрд░реВрд░рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!
рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
class MY_EXPORT Search { public: static string That( const string& name ); };
рдЗрд╕рдХреА рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде:
string Search::That( const string& name ) { if( name == " !" ) return ""; else throw runtime_error( " !" ); }
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ: рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рдФрд░ рдореВрд▓реНрдп рд╕реНрд╡рдпрдВ рднреА рд╕рд╛рдЗрд░рд┐рд▓рд┐рдХ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рд╡рд┐рдВрдбреЛрдЬ -1251 рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╕реА ++ рд╕реЗ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИред
Boost.Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЕрдкрдиреА рдЫреЛрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рдкреЗрдЯреЗрдВрдЧреЗ:
BOOST_PYTHON_MODULE( my ) { class_<Search>( "Search" ) .def( "That", &Search::That ) .staticmethod( "That" ) ; }
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмреВрд╕реНрдЯ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛!
рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо my.pyd рдкрд░ рд░рдЦреЗрдВ (рд╣рд╛рдВ, рдмрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрджрд▓реЗрдВ)ред
рд╣рдо рдкрд╛рдпрдерди рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рд╕реАрдзреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЧреНрд░рд╣рдг + рдкреАрдбрджреЗрд╡ рдХреА рддрд░рд╣ рд╣рд╛рде рдореЗрдВ рдХреЛрдИ рдЖрдИрдбреАрдИ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдмрд╕ рдЗрд╕реЗ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЖрдпрд╛рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
import my my.Search.That( " !" )
рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ .dll рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рдЦреЛрдЬ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ .dll рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдП рд░реИрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
{BoostDo} \ рд╕реНрдЯреЗрдЬ \ lib \ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗред
Boll.Python , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП MS VS2012ред рдФрд░ рдбрд┐рдмрдЧ (рдорд▓реНрдЯреА-рдереНрд░реЗрдб рдбреАрдПрд▓рдПрд▓) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП 1.52 рдмреВрд╕реНрдЯ рдмреВрд╕реНрдЯ
-рдкреАрд╕рдереЙрди- vc110-mt-gd-1_52.dll рд╣реИ ред
рдпрджрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ .dll рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЙрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рд╡реЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреЗрдВ:
www.d dependencywalker.com - рдмрд╕ рдЦреБрд▓рд╛ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд░реИрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛.exeред
рдЗрд╕рд▓рд┐рдП рдЖрдк
my
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдФрд░
my.Search.That( " !" )
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ
my.Search.That( " !" )
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЦрд╛рд▓реА рдкрд╛рда рдХреЗ рд╕рд╛рде C ++ рдХрд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрд╣реА рд╣реИ, рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╣рдо рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдореЗрдВ рдирд╣реАрдВ рдЖрдП, рд▓реЗрдХрд┐рди рдЕрдкрд╡рд╛рдж рдкрд╛рда рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ рдЗрд╕реЗ рднреЗрдЬрд╛ рдерд╛!рдпрджрд┐ рдЖрдк MS Visual Studio рд╕реЗ "
рдЕрдЯреИрдЪ рдЯреВ рдкреНрд░реЛрд╕реЗрд╕ " рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐
Search::That( const string& name )
name
UTF-8 рдореЗрдВ рдЖрддрд╛ рд╣реИред Boost.Python рдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ UTF-8 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреЗрддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдХреЛрдб Windows-1251 рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдиреНрдореБрдЦ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рднреА рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдкреАрд╕реА actually рд░реБ!" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣реИ! 'ред рд╣рдореЗрдВ рдЕрдВрдзреЗ рдФрд░ рдмрд╣рд░реЗ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рд╣реЛрддреА рд╣реИред рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ C ++ рд╕реЗ рдЖрдпрд╛ рдЕрдкрд╡рд╛рдж рдкрд╛рда рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЦреИрд░, рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗред
рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ: рдореВрд▓ рд╡рд░реНрдЧ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ / рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рдБ, рдЕрдм рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЕрдкрдиреА рдмрд╛рд░реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдХреЛ рдЕрдХреЗрд▓рд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдЖрдзрд╛ рдЬреАрд╡рди рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рдкрд╣рд▓реЗ рдорд╛рдк рд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рд╡рдВрд╢рдЬ рд╣реЛрдиреЗ рдкрд░ рдЖрдк рдХрд┐рддрдиреЗ рдЧрд▓рдд рд╣реИрдВред рдЦреИрд░, рдЕрдВрдд рдореЗрдВ рдЖрдкрдХреЛ рд╕реА + рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдирд╛рд░рдХреАрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдЖрдк рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реЛрдВрдЧреЗ, рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ! рд╣рдо рдПрдХ рдкреБрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЪрд▓реЗрдВрдЧреЗ, рдФрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рд░реИрдкрд░реЛрдВ рдХреЛ рд╕реАрдзреЗ рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╕реЗ
<t &> (obj) рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдУрд░ рджреЗрдЦреЛ :: C ++ рдХреА рддрд░рдл рдЕрдЬрдЧрд░ред
рд╣рдо рд╕рдм рдХреБрдЫ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ Boost.Python рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ C ++ рдФрд░ рдкрд╛рдпрдерди рдХреЗ рдмреАрдЪ рдпрд╛рддреНрд░рд╛ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдХреБрдЫ рдЕрджреНрднреБрдд рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ
PyUnicode_AsString рдФрд░
PyUnicode_FromString рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╢реБрджреНрдз рд╕реА рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХреЛ рдереЛрдбрд╝рд╛ рдЬрд╛рдирдХрд░ (рдпрджрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдкрдврд╝реЗрдВ), рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рднреА рдмреБрд░рд╛рдЗрдпреЛрдВ рдХреА рдЬрдбрд╝ рд╣реИред Boost.Python рдкреВрд░реА рддрд░рд╣ рд╕реЗ Python 2 рдФрд░ 3 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛрдб рдкреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:
PyUnicode_DecodeFSDefault - рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ
рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рд┐рд░реНрдл Windows-1251 рд╣реИ) рдФрд░ рддреИрдпрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрд╣ PyUnicode_FlString рдХреА рдмрдЬрд╛рдп {BoostDir} \ libs \ python \ src тАЭрдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ
str.cpp рдФрд░
рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реИред
.cppPyUnicode_DecodeFSDefaultAndSize - рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рдеред рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди PyUnicode_FromStringAndSize рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИред
PyUnicode_EncodeFSDefault - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЕрдЬрдЧрд░ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрд╛рдЗрдЯреНрд╕ (
PyBytes рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк PyBytes_AsString рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣
PyUnicode_AsUTF8String рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп рдЙрд▓рдЯрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдФрд░ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
PyBytes_AsString (PyUnicode_EncodeFSDefault (obj)) рдореИрдХреНрд░реЛ
_PyUnicode_AsString (obj ) рдХреЛ рд╡рд╕реНрддреБрддрдГ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд┐рдирд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рджрд╛рдВрддреЛрдВ рд╕реЗ рд▓реИрд╕ рд╣реИрдВ, рд╣рдо рдЪреЗрд╣рд░реЗ рдореЗрдВ рджреБрд╢реНрдорди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕реЗ рдЦреЛрдЬрдиреЗ рдФрд░ рдмреЗрдЕрд╕рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ!рд╣рдореЗрдВ
{BoostDir} \ libs \ python \ src \ рдХреЛрдб рдореЗрдВ
PyUnicode_ * рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░
{BoostDir} \ boost \ python \ рдХреЗ рдЕрдВрджрд░ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рддреБрд░рдВрдд рд░рд╣рд╕реНрдп рдкреНрд░рдХрдЯ рдХрд░ рджреВрдВрдЧрд╛, рд╣рдореЗрдВ error.cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдмрд┐рд▓реНрдЯрдЗрди_рдХреЙрдирд╡рд░реНрдЯрд░.рдХреИрдк - рдкрд╛рдпрдерди рд╕реЗ C ++ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдмрд┐рд▓реНрдЯрдЗрди_рдХреЙрдирд╡рд░реНрдЯрд░.рд╣рдкреНрдк - рдЖрдкрдХреЛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдореИрдХреНрд░реЛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
str.cpp - Python str рд╡рд░реНрдЧ (C ++ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЕрдЬрдЧрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдкрд░ C ++ рдореЗрдВ рд░реИрдкрд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
рддреНрд░реБрдЯрд┐рдпреЛрдВ.рд╕реАрдкреА - рд╕реА ++ рд╕реЗ рдкрд╛рдпрдерди рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╣реА рдЧреБрдЬрд░ рдкрд╛рда
рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реЗ рд╕рднреА рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, рд▓реЗрдЦ рд╕реЗ рдЬреБрдбрд╝реЗ
рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдкреИрдЪ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдХреНрд╕рд░ рдПрдХ рдХреЙрд▓ рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рднреА рдЕрдзрд┐рдХ, рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдХреБрд▓ 13 рд╕реЗ 4 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЖрдк рдЕрдВрдзрд╡рд┐рд╢реНрд╡рд╛рд╕реА рдирд╣реАрдВ рд╣реИрдВ, рдирд╣реАрдВ?
рд╕рднреА рд╕рдВрдкрд╛рджрдиреЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдо рдХреЗрд╡рд▓ Boost.Python рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд░реНрдпреБрдХреНрдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ:
b2 --with-python --build-type=complete
(
address-model=64
рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдпрджрд┐ рдЕрд╕реЗрдВрдмрд▓реА x64 рдХреЗ рд▓рд┐рдП рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдЖрдкрдХреЗ рдорд╢реАрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдкрд╛рдпрдерди 3.x рджреЛрдиреЛрдВ 64-рдмрд┐рдЯ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдареЗ рд╣реИрдВред)
Boost.Python рдХреЗ рдЗрдХрдЯреНрдард╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрджреНрдпрддрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ, рди рдХреЗрд╡рд▓ .lib рдФрд░ .dll рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рднреАред
рдкреБрд░рд╛рдиреЗ рдФрд░ рд╕реБрд╕реНрдд .dll рдХреЛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдПрдХрддреНрд░ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдЖрдк рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓реЗрдВрдЧреЗ, рд╣реИ рдирд╛?
рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рдХреНрд╖рдг!
import my res = my.Search.That( ' !' ) print( res )
рд╕рднреА рд╕рдорд╛рди рдХреЛрдб рдЕрдм рд╡рд╣реА рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛: рд╕реНрдЯреНрд░рд┐рдВрдЧ 'I'ред
рдХрд╛рдлреА рдПрдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░реНрдгрдорд╛рд▓рд╛, рдмрд╣реБрдд рдпреВрдирд┐рдХреЛрдб, рдЕрдЧрд░ рдкрд╛рдпрдерди 3 рдЗрд╕ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдирддрд╛ рд╣реИ!
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдкрд╡рд╛рдж рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдЖрдПрдЧрд╛:
import my res = my.Search.That( ' !' ) print( res ) try: my.Search.That( ' - !' ) except RuntimeError as e: print( e )
рд╣рдорд╛рд░рд╛ рдЕрдкрд╡рд╛рдж рд╕рд╣реА рдкрд╛рда рдХреЗ рд╕рд╛рде, рд░рдирдЯрд╛рдЗрдордЗрдорд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдорд╛рдирдХ рдкрд╛рдпрдерди рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдирджрд╛рд░ рд╣реИред
рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ C ++ рдХреА рддрд░рдл, рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ :: python :: str рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛, рд╣рдордиреЗ рддреБрд░рдВрдд рдЙрдиреНрд╣реЗрдВ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛, рдЬреЛ рд╣рдореЗрдВ C ++ рдХреА рдУрд░ рдЬрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЬреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ Cillillic рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╣рддреЗ рд╣реИрдВ:
object my = import( "my" ); object func = my.attr( str("") ) int res = extract<int>( func( x * x ) );
рдЕрдм MS Visual C ++ рдореЗрдВ рдРрд╕реЗ рдХреЛрдб рдХреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред
рдЦреИрд░, рдЪреВрдВрдХрд┐ рд╣рдо рд╕реА ++ рд╕реЗ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рд╕реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПред
C ++ рд╕реНрддрд░ рдкрд░ рдкрд╛рдпрдерди рд╕реЗ рд╕рднреА рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░ error_already_set рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕рднреА рдПрдХ рд╣реА рдмрдврд╝рд╛рд╡рд╛ рд╕реЗ :: рдкрд╛рдпрдердиред рдкрд╛рда рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рдФрд░ рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
wiki.python.org/moin/boost.python/EmbeddingPython - рд╕реЗрдХреНрд╢рди рдкрд╛рдпрдерди рдПрдХреНрд╕реЗрдкреНрд╢рди рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрдкрд╡рд╛рдж рдХреЗ рдкрд╛рда рдХреЛ рд▓реЗрдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рдЕрдкрд╡рд╛рдж рдЕрдиреБрд╡рд╛рджрдХ рдХреЛ рдмреЗрд╣рддрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ ...
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рд╣рдордиреЗ рдЫреЛрдЯреЗ Boost.Python рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рд╕рд╛рде рдореВрд▓ рдПрдордПрд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реА ++ рдХреЛрдб рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХреЙрд▓ рдХреЛ рдмрджрд▓рдХрд░, рдЕрддрд┐рд░рд┐рдХреНрдд ccoding рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛, рдХреЛрдИ std :: string рдФрд░ рдЕрдиреНрдп рднрдпрд╛рд╡рд╣рддрд╛ рдХреЛ рдЕрджреНрднреБрдд рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдЬреЛ рдХрд┐ Microsoft рдЗрддрдиреА рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирдП рддрдВрддреНрд░ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИред рдирд╣реАрдВ! рдХреБрдЫ рднреА рдирд╣реАрдВ! рдЕрдЬрдЧрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛, рд╣рдореЗрдВ рдмрд╕ рдЙрд╕рдХреА рдереЛрдбрд╝реА рдорджрдж рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред
рд╕рд╛рдзрд╛рд░рдг рдореЙрд░реНрдЯрд▓ рдЕрдм рднреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рднреАред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдорд╛рди рдкрд░рд┐рд╡рд╣рди рднрд╛рдЧ (рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ, рдЖрджрд┐) рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╕рдВрдХреАрд░реНрдг рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЛ рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдорд╛рдк рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдк рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡реЗ рдЗрддрдиреЗ рддреБрдЪреНрдЫ рд╣реИрдВ рдХрд┐ рдПрдХ рдмрд╛рд░ C ++ рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╡реЗрдм рдкреЗрдЬ рдкреАрдврд╝реА рдХреЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ + рдкрд╛рдЗрдерди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ + рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ 10% рдХреА рддреЗрдЬреА рдЖрдИред рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд░рд╣рд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рддреБрдЪреНрдЫрддрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╕реА ++ рдореЗрдВ рдХреЛрдб рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рдЬрд░реНрд╡ рдХреЗ рд╕рд╛рде) рдПрдХрддреНрд░ рдХреАред
рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЕрдм рдХрдо рд╕реЗ рдХрдо рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╢реЗрд▓ рдХрд╛рдордХрд╛рдЬреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдШреВрдо рд░рд╣рд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреВрд╕реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ)ред рдЖрдЬ рддрдХ, рд╕рдм рдХреБрдЫ рд╕рдЦреНрддреА рд╕реЗ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ред
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛
рдпрд╣рд╛рдВ Boost.Python рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдкреИрдЪ рджрд┐рдП рдЧрдП рд╣реИрдВ:
www.2shared.com/file/NFvkxMzL/habr_py3_cxx.htmlрдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ (x64 рдХреЗ рддрд╣рдд рдирд┐рд░реНрдорд┐рдд) рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ:
www.2shared.com/file/FRboyHQv/pywrap.htmlрдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
рдкрд╛рдпрдерди рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд▓рд┐рдВрдХ 3. рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХреЛрдб рдкреГрд╖реНрда рд╕реЗ рдзрд╛рд░рд╛ рд╕реА-рдПрдкреАрдЖрдИ рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд:
docs.python.org/3/c-api/unicode.html?highlight=pyunicode#file-system-encodingBoost.Python рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ:
www.boost.org/doc/libs/1_52_0/libs/python/doc