Mac OS рдкрд░ рдЕрдкрдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ PySide / PyQt рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

рдЫрд╡рд┐
рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ HTML рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдмрд╕ рдРрд╕рд╛ рдХрд╛рдо рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╢рд░реНрдд рдХреЗ рд╕рд╛рде - рдЖрдЙрдЯрдкреБрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

рдЕрдкрдиреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЖрдХрд░реНрд╖рдг рдХреЗ рдХрд╛рд░рдг, рдмреЛрд░реНрдб рдкрд░ WebKit рдХреЗ рд╕рд╛рде Python + PySide рдХреЛ рдореБрдЦреНрдп рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, py2app рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрдк рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕рд╛рдордиреЗ рдЖрдИрдВ, рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЖрд╡реЗрджрди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ - рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереА рдХрд┐ py2app рдЕрдкрдиреЗ рдЖрдк рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдмрд┐рд▓реНрд▓реА рдХреЗ рддрд╣рдд, рдХрджрдо рд╕реЗ рдХрджрдо рдирд┐рд░реНрджреЗрд╢ рдХреИрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХрд┐ py2app рдмрдВрдбрд▓ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдореИрдХ рдУрдПрд╕ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдореИрдХрдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред

рдЯреНрд░реЗрдирд┐рдВрдЧ


рддреЛ рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ:
  1. XCode
  2. MacPorts
  3. рдЕрдЬрдЧрд░
  4. virtualenv
  5. рдХреНрдпреВрдЯреА 4
  6. PySide
  7. py2app

XCode


рдпрд╣ рдореИрдХ рдУрдПрд╕ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ gcc рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - 4.2, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ (3.X) рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдХ рдУрдПрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдбрд┐рд╕реНрдХ рд╕реЗ рдпрд╛ рдРрдкреНрдкрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓реЗрдВ (рдореБрдлреНрдд рдкрдВрдЬреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ)

MacPorts


рдПрдХ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдЬреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЗ рдкреЙрдкреА рдкрд░ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдорд╛рдирдХ рддрд░реАрдХреЗ (pkg) рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред MacPorts.org рд╕реЗ рд▓реЗрдВред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ sudo port selfupdate

рдЕрдЬрдЧрд░


рд╣рдо MacPorts рд╕реЗ рдЖрддреЗ рд╣реИрдВ:
$ sudo port install python27
рдпрджрд┐ рдЖрдк рдЕрдЬрдЧрд░ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЙрд╕рдХреЗ рдмрд╛рдж рдмрджрд▓реЗрдВред

virtualenv


рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛ рдЖрдкрдХреЛ рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдЕрдЬрдЧрд░ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЖрдЧреЗ рддреИрдирд╛рддреА рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, virtualenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдПрдХ "рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╕реИрдВрдбрдмреЙрдХреНрд╕" рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
$ sudo easy_install virtualenv

рд╣рдордиреЗ virtualenvwrapper рдХреЛ рд▓реЛрдб рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ:
$ sudo easy_install virtualenvwrapper

рдХреНрдпреВрдЯреА 4


рд╣рдордиреЗ рдСрдлрд┐рд╕ рд╕реЗ рд▓рдЧрд╛ рджрд┐рдпрд╛ ред рд╕рд╛рдЗрдЯ , рдореИрдВрдиреЗ рдХреЛрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ : рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.5 рдХреЗ рд▓рд┐рдП рдореИрдХ рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ - 10.6

PySide


рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдХреНрдпреВрдЯреА рдХреА рд╕рднреА рд╢рдХреНрддрд┐ рдФрд░ рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдкрд╛рдЗрдк рдпрд╛ easy_install (рдЬреЛ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╣реЛрдЧрд╛) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ PySide рдХреЛ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ PySide рдХреЛ рдЗрди рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧ рдЧрдпрд╛ ... рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдЬрдм рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдмреИрдареЗ рд╣реБрдП рдкрдХрдбрд╝рд╛ рдФрд░ рдХреБрдЫ рддреГрддреАрдп-рдкрдХреНрд╖ lib = рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╢рд╛рд╕рди рдХрд┐рдпрд╛)
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдкреИрдХреЗрдЬ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛


рддреИрдпрд╛рд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд╕реАрдзреЗ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдБ


рд╣рдо рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо ~ / .bash_profile рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh


рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдБ
$ . ~/.bash_profile
$ mkdir -p $WORKON_HOME
$ mkvirtualenv --no-site-packages --python=/opt/local/bin/python2.7 py27
# --no-site-packages - ,
# --python=/opt/local/bin/python2.7 -
# py27 -


рдЙрд╕рдХреЗ рдмрд╛рдж, рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ $ WORKON_HOME / py27 рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, (py27) рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
$ workon py27

рдЖрдк рдкрд╛рдпрдерди рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИред
(py27) $ python
Python 2.7.2 (default, Jul 21 2011, 01:27:20)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>


рдЕрдм рдЖрдкрдХреЛ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирдП рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
# PySide packages
$ cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
$ mv PySide/ ~/Envs/py27/lib/python2.7/site-packages/
$ mv pysideuic/ ~/Envs/py27/lib/python2.7/site-packages/

# PySide libs
$ cd /usr/lib/
$ sudo mv libpyside-python2.7.* ~/Envs/py27/lib/

# PySide
$ sudo mv libshiboken-python2.7.* ~/Envs/py27/lib/

# Qt4 libs
$ cd /Library/Frameworks/
$ cp -pR Qt* ~/Envs/py27/lib/
$ cp -pR phonon.framework ~/Envs/py27/lib/ # framework!

# Qt ,
$ sudo /Developer/Tools/uninstall-qt.py


рддреЛ, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдПрдХ рдЕрдВрддрд┐рдо рдкреЙрд▓рд┐рд╢рд┐рдВрдЧ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдерд╛ред

рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, virtualenvwrapper рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реБрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдкреНрд░рдЪрд╛рд░ , рдкрд╢реНрдЪрд╛рдд , рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА , рд╕реНрдердЧрд┐рдд рдФрд░ рдЕрдиреНрдп ( рдкреВрд░реНрдг рд╕реВрдЪреА )ред рдЕрдм рд╣рдо рдкреЛрд╕реНрдЯрдПрдХреНрдЯрд┐рдиреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИред
$ vi ~/Envs/py27/bin/postactivate
#
export DYLD_FRAMEWORK_PATH=~/Envs/py27/lib/
export DYLD_LIBRARY_PATH=~/Envs/py27/lib/


рддреНрд╡рд░рд┐рдд рдЬрд╛рдВрдЪ:
$ workon py27
(py27) $ python
Python 2.7.2 (default, Jul 21 2011, 01:27:20)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PySide
>>> PySide
<module 'PySide' from '/Users/smaant/Envs/py27/lib/python2.7/site-packages/PySide/__init__.pyc'>
>>>


рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдиреЗ рдЧрд▓рддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдкрдХрдбрд╝рд╛ рд╣реИ, рддреЛ ... рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ :)

py2app рдФрд░ рдмреИрдЯрд▓ рдЪреЗрдХ


рдЕрдм рд╕рдм рдХреБрдЫ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ - qt_test.py :
#!/usr/bin/env python

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *

app = QApplication(sys.argv)

web = QWebView()
web.load(QUrl("http://www.pyside.org/"))
web.show()

sys.exit(app.exec_())


рдЪреЗрдХ
$ workon py27
(py27) $ python qt_test.py

рдЫрд╡рд┐

py2app


Py2app рдХреА рдмрд╛рд░реА рдЖрдИ рд╣реИ , рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдПрдХ рдкреВрд░реНрдг рдмрдВрдбрд▓ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, virtualenv рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╣рдорд╛рд░реЗ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХ рдФрд░ рдкрд╛рдЗрдк рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд░рдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо py2app рдбрд╛рд▓реЗрдВрдЧреЗ :
$ workon py27
(py27) $ pip install py2app


рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, py2app рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ - setup.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рдбреЙрдХ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рд╣рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
 from setuptools import setup APP = ['qt_test.py'] OPTIONS = {'argv_emulation': False, 'includes' : ('PySide.QtNetwork', ), 'semi_standalone': 'False', 'compressed' : 'True', 'frameworks' : ('libpyside-python2.7.1.0.dylib', 'libshiboken-python2.7.1.0.dylib'), } setup( app=APP, options={'py2app': OPTIONS}, setup_requires=['py2app'], ) 


рдбреИрдбреА рдбрд┐рд╕реНрдЯ рдореЗрдВ рдПрдХ рдРрдк рдмрдВрдбрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ! )
рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.6.8 рдкрд░ рдкреВрд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдВрдбрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрд╕реА рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕реНрд╡рдЪреНрдЫ рдкреНрд░рдгрд╛рд▓реАред

рдпрджрд┐ рдЖрдк PyQt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ pyqt рд╕реЗрдЯ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА PySide рдХреЛ PyQt рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрд╕рдЖрдИрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕реА рддрд░рд╣ рдЗрд╕реЗ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗрдЯрдЕрдкрд╣реЛрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ ред

рд╕рдВрджрд░реНрдн


рдиреАрдЪреЗ рдЙрди рдФрдЬрд╛рд░реЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ, рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде:

рджреЛ рд▓реЗрдЦ рдЬрд┐рдирд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓реА:
Py2app рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PyQt рдРрдк рд╕реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди OS X рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ
Virtualenv рдФрд░ Macports рдХреЗ рд╕рд╛рде OSX рдкрд░ рдХрдИ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг

Source: https://habr.com/ru/post/In124573/


All Articles