<p>рдкрд┐рдкреЗрдирд╡ рдореЗрд░реЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрди рд╕рднреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬрдире░ 2018  ┬╖  50рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pipenv

рдирдорд╕реНрддреЗ, рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ 2 рд╕реНрд░реЛрдд рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд┐рдкреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджрд░реНрдкрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдореЗрд░рд╛ Pipfile рд╣реИ:

[[source]]

url = "https://company/api/pypi/pypi.python.org/simple"
verify_ssl = true
name = "pypi"


[[source]]

url = "https://company/api/pypi/pypi-local/simple"
verify_ssl = true
name = "pypi-local"


[packages]

cachetools = "==2.0.1"
click = "==6.2"
data-object = "==1.2.1"
flask-cache = "==0.13.1"
flask-classy = "==0.6.10"
flask-humanize = "==0.3.0"
flask-migrate = "==2.1.1"
flask-oauthlib = "==0.9.4"
flask-sqlalchemy = "==2.3.2"
flask-wtf = "==0.14.2"
flask = "==0.12.2"
huey = "==1.6.0"
pendulum = "==1.4.0"
pyyaml = "==3.12"
redis = "==2.10.6"
requests = "==2.18.4"
requests-cache = "==0.4.13"
sqlalchemy = "==1.2.1"
whitenoise = "==3.3.1"
gunicorn = "==19.7.1"


[dev-packages]

ipdb = "*"
ipython = "*"
flask-shell-ipython = "*"
coverage = "*"
flake8 = "*"
flask-debugtoolbar = "*"
рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
  1. рдУрдПрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдмрдВрдЯреВ
  2. рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: $ python -V рдЕрдЬрдЧрд░ 3.6.1
  3. Pipenv рд╕рдВрд╕реНрдХрд░рдг: $ pipenv --version pipenv, рд╕рдВрд╕реНрдХрд░рдг 9.0.3
рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо

рд╕рднреА рдкреИрдХреЗрдЬ рддреБрд░рдВрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдПред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо
Installing dependencies from Pipfile.lock (7e9249)тАж
An error occurred while installing blinker==1.4! Will try again.
An error occurred while installing click==6.2! Will try again.
An error occurred while installing coverage==4.4.2! Will try again.
An error occurred while installing decorator==4.2.1! Will try again.
An error occurred while installing flask-debugtoolbar==0.10.1! Will try again.
An error occurred while installing flask-shell-ipython==0.3.0! Will try again.
An error occurred while installing ipdb==0.10.3! Will try again.
An error occurred while installing ipython==6.2.1! Will try again.
An error occurred while installing ipython-genutils==0.2.0! Will try again.
An error occurred while installing jedi==0.11.1! Will try again.
An error occurred while installing parso==0.1.1! Will try again.
An error occurred while installing pexpect==4.3.1; sys_platform != 'win32'! Will try again.
An error occurred while installing pickleshare==0.7.4! Will try again.
An error occurred while installing prompt-toolkit==1.0.15! Will try again.
An error occurred while installing ptyprocess==0.5.2! Will try again.
An error occurred while installing pygments==2.2.0! Will try again.
An error occurred while installing simplegeneric==0.8.1! Will try again.
An error occurred while installing traitlets==4.3.2! Will try again.
An error occurred while installing wcwidth==0.1.7! Will try again.
Installing initiallyтАУfailed dependenciesтАж
Success installing blinker==1.4!
Success installing click==6.7!
Success installing coverage==4.4.2!
Success installing decorator==4.2.1!
Success installing flask-debugtoolbar==0.10.1!
Success installing flask-shell-ipython==0.3.0!
Success installing ipdb==0.10.3!
Success installing ipython==6.2.1!
Success installing ipython-genutils==0.2.0!
Success installing jedi==0.11.1!
Success installing parso==0.1.1!
Success installing pexpect==4.3.1; sys_platform != 'win32'!
Success installing pickleshare==0.7.4!
Success installing prompt-toolkit==1.0.15!
Success installing ptyprocess==0.5.2!
Success installing pygments==2.2.0!
Success installing simplegeneric==0.8.1!
Success installing traitlets==4.3.2!
Success installing wcwidth==0.1.7!
рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

рдкрд┐рдкреЗрдирд╡ рдЗрдВрд╕реНрдЯреЙрд▓ - рд╕рд┐рд╕реНрдЯрдо
рдХреГрдкрдпрд╛ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирди 6.2 рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХреНрд▓рд┐рдХ == 6.7 рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп @jacekjab рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЖрдк рдЗрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдлрд▓рддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддрд┐ рд╕реЗ, рдореИрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧреИрд░-рдкреАрдкреАрдЖрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдорд╡рд░реНрддреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡реЗ рд╢реБрд░реВ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣реЗ рдФрд░ рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЧрдПред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдкреВрд░рд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрдкрдХрд╛ $ PATH, env рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рд╡рд╣ рд╕рд╛рдорд╛рди рдорджрдж рдХрд░реЗрдЧрд╛

рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк editable = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ VCS рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рдЬрдирди рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @hjwp

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХрд▓ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдВрдд рддрдХ рдзрдХреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдк рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ --sequential рдпрд╛ рдЕрд╕рдлрд▓ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдХрд░)

рд╣рд╛рдп @techalchemy , рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдпрд╣ рд╕рдорд╡рд░реНрддреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИред

рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП TL; DR, рдмрд╕ рдЕрдкрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдорд╛рдВрдб рдореЗрдВ --sequential рдЬреЛрдбрд╝реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:

pipenv install --sequential
pipenv install --sequential -e .



md5-98183fa9892e1e1eacf016e14c79aa2b



pipenv sync --sequential

рд╕рднреА 50 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рднреА рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ?

рд╣рд╛рдп @jacekjab рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЖрдк рдЗрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдлрд▓рддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддрд┐ рд╕реЗ, рдореИрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧреИрд░-рдкреАрдкреАрдЖрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдорд╡рд░реНрддреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡реЗ рд╢реБрд░реВ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣реЗ рдФрд░ рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЧрдПред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдХреНрд▓рд┐рдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдкреВрд░рд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЖрдкрдХреЗ $PATH , env рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рд╡рд╣ рд╕рд╛рдорд╛рди рдорджрдж рдХрд░реЗрдЧрд╛

рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рдж рд╕реЗ рд╡реЗ рд╕рдлрд▓ рд╣реИрдВ - рд╣рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╛рдЗрдкреЗрдирд╡ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ, @jacekjab рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдиреЗрдХреНрд╕рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдмрд╣реБрдд рдЧреБрд╕реНрд╕рд╛ рдЖ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@pawelswiecki рдирд┐рд░реНрдЧрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдФрд░ Pipfile рд╕рд╣рд┐рдд рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд╣рдореЗрдВ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЪреАрдЬ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЙрддреНрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХ рдЙрди рдЪреАрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реИрдВрдХ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ tox рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░рд╛ tox.ini :

[tox]
envlist = flake8-py3
skipsdist = True

[testenv]
passenv=HOME
deps = pipenv
setenv=
    PYTHONPATH = {toxinidir}/dag
commands=
    pipenv install --skip-lock
    pipenv install --dev --skip-lock
    pipenv run flake8 --version
    pipenv run flake8 dag
    pipenv run pytest

рдореЗрд░рд╛ pipfile :

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
"flake8" = "*"
docker-py = "*"
google-cloud-dataflow = "==2.2.0"
google-cloud-bigquery = "*"
apache-airflow = {extras = ["crypto", "postgres", "hive", "celery", "jdbc", "gcp_api"], version = "==1.9.0"}
paramiko = "*"

[dev-packages]
pytest = "*"
coverage = "*"

[requires]
python_version = "3.6"

рдЖрдЙрдЯрдкреБрдЯ (рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдХреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд┐рд░реНрдл рдЯреЗрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдЬреЛ рдареАрдХ рд╣реИ):

flake8-py3 installed: You are using pip version 9.0.3, however version 10.0.1 is available.,You should consider upgrading via the 'pip install --upgrade pip' command.,alembic==0.8.10,amqp==2.2.2,apache-airflow==1.9.0,apache-beam==2.2.0,asn1crypto==0.24.0,attrs==17.4.0,avro==1.8.2,Babel==2.5.3,bcrypt==3.1.4,billiard==3.5.0.3,bitarray==0.8.1,bleach==2.1.2,cachetools==2.0.1,celery==4.1.0,certifi==2018.1.18,cffi==1.11.5,chardet==3.0.4,click==6.7,configparser==3.5.0,coverage==4.5.1,crcmod==1.7,croniter==0.3.20,cryptography==2.2.2,dill==0.2.6,docker-py==1.10.6,docker-pycreds==0.2.2,docutils==0.14,flake8==3.5.0,Flask==0.11.1,Flask-Admin==1.4.1,Flask-Cache==0.13.1,Flask-Login==0.2.11,flask-swagger==0.2.13,Flask-WTF==0.14,flower==0.9.2,funcsigs==1.0.0,future==0.16.0,gapic-google-cloud-pubsub-v1==0.15.4,gitdb2==2.0.3,GitPython==2.1.9,google-api-core==1.1.0,google-api-python-client==1.5.5,google-apitools==0.5.11,google-auth==1.4.1,google-auth-httplib2==0.0.3,google-auth-oauthlib==0.2.0,google-cloud-bigquery==0.32.0,google-cloud-core==0.28.1,google-cloud-dataflow==2.2.0,google-cloud-pubsub==0.26.0,google-gax==0.15.16,google-resumable-media==0.3.1,googleapis-common-protos==1.5.3,googledatastore==7.0.1,grpc-google-iam-v1==0.11.4,grpcio==1.10.0,gunicorn==19.7.1,hive-thrift-py==0.0.1,html5lib==1.0.1,httplib2==0.9.2,idna==2.6,impyla==0.14.1,itsdangerous==0.24,JayDeBeApi==1.1.1,Jinja2==2.8.1,JPype1==0.6.3,kombu==4.1.0,lockfile==0.12.2,lxml==3.8.0,Mako==1.0.7,Markdown==2.6.11,MarkupSafe==1.0,mccabe==0.6.1,mock==2.0.0,more-itertools==4.1.0,numpy==1.14.2,oauth2client==2.0.2,oauthlib==2.0.7,ordereddict==1.1,pandas==0.22.0,pandas-gbq==0.4.0,paramiko==2.4.1,pbr==4.0.1,pipenv==11.9.0,pluggy==0.6.0,ply==3.8,proto-google-cloud-datastore-v1==0.90.4,proto-google-cloud-pubsub-v1==0.15.4,protobuf==3.3.0,psutil==4.4.2,psycopg2==2.7.4,py==1.5.3,pyasn1==0.4.2,pyasn1-modules==0.2.1,pycodestyle==2.3.1,pycparser==2.18,pyflakes==1.6.0,Pygments==2.2.0,PyHive==0.5.1,PyNaCl==1.2.1,pyOpenSSL==17.5.0,pytest==3.5.0,python-daemon==2.1.2,python-dateutil==2.7.2,python-editor==1.0.3,python-nvd3==0.14.2,python-slugify==1.1.4,pytz==2018.3,PyYAML==3.12,requests==2.18.4,requests-oauthlib==0.8.0,rsa==3.4.2,setproctitle==1.1.10,six==1.10.0,smmap2==2.0.3,SQLAlchemy==1.2.6,tabulate==0.7.7,thrift==0.11.0,thriftpy==0.3.9,tornado==5.0.1,typing==3.6.4,unicodecsv==0.14.1,Unidecode==1.0.22,uritemplate==3.0.0,urllib3==1.22,vine==1.1.4,virtualenv==15.2.0,virtualenv-clone==0.3.0,webencodings==0.5.1,websocket-client==0.47.0,Werkzeug==0.14.1,WTForms==2.1,zope.deprecation==4.3.0
flake8-py3 runtests: PYTHONHASHSEED='4112944039'
flake8-py3 runtests: commands[0] | pipenv install --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Installing dependencies from PipfileтАж
An error occurred while installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 6/6 тАФ 00:00:02
Installing initiallyтАУfailed dependenciesтАж
Success installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0!
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 1/1 тАФ 00:00:01
flake8-py3 runtests: commands[1] | pipenv install --dev --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
Installing dependencies from PipfileтАж
An error occurred while installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 8/8 тАФ 00:00:02
Installing initiallyтАУfailed dependenciesтАж
Success installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0!
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 1/1 тАФ 00:00:01
flake8-py3 runtests: commands[2] | pipenv run flake8 --version
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.4 on Darwin
flake8-py3 runtests: commands[3] | pipenv run flake8 dag
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.
flake8-py3 runtests: commands[4] | pipenv run pytest
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project.

рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ CI рдмрд┐рд▓реНрдб рдореЗрдВ python -m pip install --upgrade pip рд╕рд╛рде рдкрд╣рд▓реЗ рдЙрдиреНрдирдпрди рдХрд░реЗрдВ?

рдирд╣реАрдВ, рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдХрджрдо рдЙрдард╛рдП рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ:

рдареАрдХ рд╣реИ рдореИрдВрдиреЗ .tox/ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдирд┐рдХрд╛рд▓ рджреА рдФрд░ tox рднрд╛рдЧ рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рдРрд╕рд╛ рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рджреЛрдиреЛрдВ рдмрд╛рд░ рдореБрдЭреЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓реЗ:

flake8-py3 create: /Users/jack.low/work/dpd_seller_triggers/.tox/flake8-py3
flake8-py3 installdeps: pipenv
flake8-py3 installed: certifi==2018.4.16,pipenv==2018.5.18,virtualenv==15.2.0,virtualenv-clone==0.3.0
flake8-py3 runtests: PYTHONHASHSEED='4227619038'
flake8-py3 runtests: commands[0] | pipenv install --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
Installing dependencies from PipfileтАж
An error occurred while installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 6/6 тАФ 00:00:35
Installing initiallyтАУfailed dependenciesтАж
Success installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0!
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 1/1 тАФ 00:01:12
flake8-py3 runtests: commands[1] | pipenv install --dev --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
Installing dependencies from PipfileтАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 8/8 тАФ 00:00:08
flake8-py3 runtests: commands[2] | pipenv run flake8 --version
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.4 on Darwin
flake8-py3 runtests: commands[3] | pipenv run flake8 dag
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
flake8-py3 runtests: commands[4] | pipenv run pytest
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.

рдЕрдм рдореИрдВрдиреЗ .tox/ рдлрд┐рд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдЕрдкрдиреЗ tox.ini рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд┐рдореНрди рд▓рд╛рдЗрди python -m pip install --upgrade pip рдЬреЛрдбрд╝ рджрд┐рдпрд╛:

[tox]
envlist = flake8-py3
skipsdist = True

[testenv]
passenv=HOME
deps = pipenv
setenv=
    PYTHONPATH = {toxinidir}/dag
commands=
    python -m pip install --upgrade pip
    pipenv install --skip-lock
    pipenv install --dev --skip-lock
    pipenv run flake8 --version
    pipenv run flake8 dag
    pipenv run pytest

tox рдЪрд▓рдирд╛ рдлрд┐рд░ рд╕реЗ рдореБрдЭреЗ рдпрд╣ рджреЗрддрд╛ рд╣реИ:

flake8-py3 create: /Users/jack.low/work/dpd_seller_triggers/.tox/flake8-py3
flake8-py3 installdeps: pipenv
flake8-py3 installed: certifi==2018.4.16,pipenv==2018.5.18,virtualenv==15.2.0,virtualenv-clone==0.3.0
flake8-py3 runtests: PYTHONHASHSEED='2202490466'
flake8-py3 runtests: commands[0] | python -m pip install --upgrade pip
Requirement already up-to-date: pip in ./.tox/flake8-py3/lib/python3.6/site-packages (10.0.1)
flake8-py3 runtests: commands[1] | pipenv install --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
Installing dependencies from PipfileтАж
An error occurred while installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 6/6 тАФ 00:00:12
Installing initiallyтАУfailed dependenciesтАж
Success installing apache-airflow[crypto,postgres,hive,celery,jdbc,gcp_api]==1.9.0!
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 1/1 тАФ 00:00:30
flake8-py3 runtests: commands[2] | pipenv install --dev --skip-lock
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
Installing dependencies from PipfileтАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 8/8 тАФ 00:00:06
flake8-py3 runtests: commands[3] | pipenv run flake8 --version
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.4 on Darwin
flake8-py3 runtests: commands[4] | pipenv run flake8 dag
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.
flake8-py3 runtests: commands[5] | pipenv run pytest
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead.

FYI рдХрд░реЗрдВ: рдмрд╕ рдЪрд▓ python3 -m pip install --upgrade pip рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ tox рдореБрдЭреЗ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдЕрдЬрдЧрд░ рджреЗрд╡ рдирд╣реАрдВ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред

@wjlow рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @techalchemy рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ commands рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬреИрд╕реЗ:

commands =
    pipenv run python -m pip install --upgrade pip
    pipenv install --skip-lock
    pipenv install --dev --skip-lock
    pipenv run flake8 --version
    pipenv run flake8 dag
    pipenv run pytest

рдПрдХ рд╣реА рдореБрджреНрджрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ!

/ cc @hynek рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ?

рдХреНрдпрд╛ рдЖрдк рдкрд┐рдкреЗрдирд╡ рдХреЛ рдЬрд╣рд░ рдХреЗ рд╕рд╛рде рднрд░ рд░рд╣реЗ рдереЗ?

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ?

рдореИрдВ рдЕрдкрдиреЗ CI рдорд╢реАрдиреЛрдВ (gitlab рдзрд╛рд╡рдХ) рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХрдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореИрдВ рднреА рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдХреГрдкрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

$ pipenv install --dev
Creating a virtualenv for this projectтАж
Using /usr/local/bin/python3.6m (3.6.5) to create virtualenvтАж
Running virtualenv with interpreter /usr/local/bin/python3.6m
Using base prefix '/usr/local'
New python executable in /src/.cache/virtualenv/src-OMz0Or2F/bin/python3.6m
Also creating executable in /src/.cache/virtualenv/src-OMz0Or2F/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: .cache/virtualenv/src-OMz0Or2F
Installing dependencies from Pipfile.lock (d65033)тАж
An error occurred while installing addict==2.1.3! Will try again.
An error occurred while installing appdirs==1.4.3! Will try again.
An error occurred while installing apscheduler==3.5.1! Will try again.
An error occurred while installing arrow==0.12.1! Will try again.
An error occurred while installing attrs==18.1.0! Will try again.
An error occurred while installing babel==2.5.3! Will try again.
An error occurred while installing boto3==1.7.35! Will try again.
An error occurred while installing cryptography==2.2.2! Will try again.
An error occurred while installing defusedxml==0.5.0! Will try again.
An error occurred while installing docutils==0.14! Will try again.
An error occurred while installing hashids==1.2.0! Will try again.
An error occurred while installing iso8601==0.1.12! Will try again.
An error occurred while installing isodate==0.6.0! Will try again.
An error occurred while installing jsl==0.2.4! Will try again.
An error occurred while installing lz4==2.0.0! Will try again.
An error occurred while installing money==1.3.0! Will try again.
An error occurred while installing psycopg2-binary==2.7.4! Will try again.
An error occurred while installing pybase64==0.4.0! Will try again.
An error occurred while installing pycrypto==2.6.1! Will try again.
An error occurred while installing pyjwt==1.6.4! Will try again.
An error occurred while installing python-rapidjson==0.6.2! Will try again.
An error occurred while installing pytz==2018.4! Will try again.
An error occurred while installing retrying==1.3.3! Will try again.
An error occurred while installing sqlalchemy==1.2.8! Will try again.
An error occurred while installing typing==3.6.4! Will try again.
An error occurred while installing uvloop==0.10.1! Will try again.
An error occurred while installing validators==0.12.2! Will try again.
An error occurred while installing atomicwrites==1.1.5! Will try again.
An error occurred while installing attrs==18.1.0! Will try again.
An error occurred while installing cached-property==1.4.2! Will try again.
An error occurred while installing callee==0.3! Will try again.
An error occurred while installing docker-compose==1.20.1! Will try again.
An error occurred while installing docker-pycreds==0.3.0! Will try again.
An error occurred while installing docopt==0.6.2! Will try again.
An error occurred while installing idna==2.6! Will try again.
An error occurred while installing mock==2.0.0! Will try again.
An error occurred while installing more-itertools==4.2.0! Will try again.
An error occurred while installing pluggy==0.6.0! Will try again.
An error occurred while installing requests-mock==1.5.0! Will try again.
An error occurred while installing websocket-client==0.48.0! Will try again.
Installing initiallyтАУfailed dependenciesтАж
Success installing addict==2.1.3!
Success installing appdirs==1.4.3!
Success installing apscheduler==3.5.1!
Success installing arrow==0.12.1!
Success installing attrs==18.1.0!
Success installing babel==2.5.3!
Success installing boto3==1.7.35!
Success installing cryptography==2.2.2!
Success installing defusedxml==0.5.0!
Success installing docutils==0.14!
Success installing hashids==1.2.0!
Success installing iso8601==0.1.12!
Success installing isodate==0.6.0!
Success installing jsl==0.2.4!
Success installing lz4==2.0.0!
Success installing money==1.3.0!
Success installing psycopg2-binary==2.7.4!
Success installing pybase64==0.4.0!
Success installing pycrypto==2.6.1!
Success installing pyjwt==1.6.4!
Success installing python-rapidjson==0.6.2!
Success installing pytz==2018.4!
Success installing retrying==1.3.3!
Success installing sqlalchemy==1.2.8!
Success installing typing==3.6.4!
Success installing uvloop==0.10.1!
Success installing validators==0.12.2!
Success installing atomicwrites==1.1.5!
Success installing attrs==18.1.0!
Success installing cached-property==1.4.2!
Success installing callee==0.3!
Success installing docker-compose==1.20.1!
Success installing docker-pycreds==0.3.0!
Success installing docopt==0.6.2!
Success installing idna==2.6!
Success installing mock==2.0.0!
Success installing more-itertools==4.2.0!
Success installing pluggy==0.6.0!
Success installing requests-mock==1.5.0!
Success installing websocket-client==0.48.0!
To activate this project's virtualenv, run the following:
 $ pipenv shell
$ pipenv graph && pipenv run python --version && pwd
addict==2.1.3
alchemy-mock==0.3.1
  - setuptools [required: Any, installed: 39.2.0]
  - six [required: Any, installed: 1.11.0]
  - sqlalchemy [required: Any, installed: 1.2.8]
APScheduler==3.5.1
  - pytz [required: Any, installed: 2018.4]
  - setuptools [required: >=0.7, installed: 39.2.0]
  - six [required: >=1.4.0, installed: 1.11.0]
  - tzlocal [required: >=1.2, installed: 1.5.1]
    - pytz [required: Any, installed: 2018.4]
arrow==0.12.1
  - python-dateutil [required: Any, installed: 2.6.1]
    - six [required: >=1.5, installed: 1.11.0]
Babel==2.5.3
  - pytz [required: >=0a, installed: 2018.4]
boto3==1.7.35
  - botocore [required: <1.11.0,>=1.10.35, installed: 1.10.35]
    - docutils [required: >=0.10, installed: 0.14]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - python-dateutil [required: <3.0.0,>=2.1, installed: 2.6.1]
      - six [required: >=1.5, installed: 1.11.0]
  - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
  - s3transfer [required: <0.2.0,>=0.1.10, installed: 0.1.13]
    - botocore [required: <2.0.0,>=1.3.0, installed: 1.10.35]
      - docutils [required: >=0.10, installed: 0.14]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - python-dateutil [required: <3.0.0,>=2.1, installed: 2.6.1]
        - six [required: >=1.5, installed: 1.11.0]
callee==0.3
ciso8601==2.0.1
colorama==0.3.9
cryptography==2.2.2
  - asn1crypto [required: >=0.21.0, installed: 0.24.0]
  - cffi [required: >=1.7, installed: 1.11.5]
    - pycparser [required: Any, installed: 2.18]
  - idna [required: >=2.1, installed: 2.6]
  - six [required: >=1.4.1, installed: 1.11.0]
docker-compose==1.20.1
  - cached-property [required: >=1.2.0,<2, installed: 1.4.2]
  - docker [required: >=3.1.4,<4.0, installed: 3.3.0]
    - docker-pycreds [required: >=0.2.3, installed: 0.3.0]
      - six [required: >=1.4.0, installed: 1.11.0]
    - requests [required: !=2.18.0,>=2.14.2, installed: 2.18.4]
      - certifi [required: >=2017.4.17, installed: 2018.4.16]
      - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
      - idna [required: <2.7,>=2.5, installed: 2.6]
      - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
    - six [required: >=1.4.0, installed: 1.11.0]
    - websocket-client [required: >=0.32.0, installed: 0.48.0]
      - six [required: Any, installed: 1.11.0]
  - dockerpty [required: <0.5,>=0.4.1, installed: 0.4.1]
    - six [required: >=1.3.0, installed: 1.11.0]
  - docopt [required: <0.7,>=0.6.1, installed: 0.6.2]
  - jsonschema [required: >=2.5.1,<3, installed: 2.6.0]
  - PyYAML [required: <4,>=3.10, installed: 3.12]
  - requests [required: !=2.11.0,>=2.6.1,!=2.12.2,<2.19,!=2.18.0, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - six [required: <2,>=1.3.0, installed: 1.11.0]
  - texttable [required: >=0.9.0,<0.10, installed: 0.9.1]
  - websocket-client [required: >=0.32.0,<1.0, installed: 0.48.0]
    - six [required: Any, installed: 1.11.0]
flake8==3.5.0
  - mccabe [required: <0.7.0,>=0.6.0, installed: 0.6.1]
  - pycodestyle [required: >=2.0.0,<2.4.0, installed: 2.3.1]
  - pyflakes [required: >=1.5.0,<1.7.0, installed: 1.6.0]
hashids==1.2.0
injector==0.13.4
  - setuptools [required: >=0.6b1, installed: 39.2.0]
  - typing [required: Any, installed: 3.6.4]
iso8601==0.1.12
jsl==0.2.4
lz4==2.0.0
mock==2.0.0
  - pbr [required: >=0.11, installed: 4.0.4]
  - six [required: >=1.9, installed: 1.11.0]
money==1.3.0
prometheus-client==0.2.0
psycopg2==2.7.4
psycopg2-binary==2.7.4
pybase64==0.4.0
  - six [required: >=1.10.0, installed: 1.11.0]
pycrypto==2.6.1
PyJWT==1.6.4
pytest-sugar==0.9.1
  - pytest [required: >=2.9, installed: 3.6.1]
    - atomicwrites [required: >=1.0, installed: 1.1.5]
    - attrs [required: >=17.4.0, installed: 18.1.0]
    - more-itertools [required: >=4.0.0, installed: 4.2.0]
      - six [required: <2.0.0,>=1.0.0, installed: 1.11.0]
    - pluggy [required: >=0.5,<0.7, installed: 0.6.0]
    - py [required: >=1.5.0, installed: 1.5.3]
    - setuptools [required: Any, installed: 39.2.0]
    - six [required: >=1.10.0, installed: 1.11.0]
  - termcolor [required: >=1.1.0, installed: 1.1.0]
pytest-tornado==0.4.5
  - pytest [required: Any, installed: 3.6.1]
    - atomicwrites [required: >=1.0, installed: 1.1.5]
    - attrs [required: >=17.4.0, installed: 18.1.0]
    - more-itertools [required: >=4.0.0, installed: 4.2.0]
      - six [required: <2.0.0,>=1.0.0, installed: 1.11.0]
    - pluggy [required: >=0.5,<0.7, installed: 0.6.0]
    - py [required: >=1.5.0, installed: 1.5.3]
    - setuptools [required: Any, installed: 39.2.0]
    - six [required: >=1.10.0, installed: 1.11.0]
  - tornado [required: Any, installed: 4.5.3]
python-rapidjson==0.6.2
requests-mock==1.5.0
  - requests [required: >=1.1, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - six [required: Any, installed: 1.11.0]
retrying==1.3.3
  - six [required: >=1.7.0, installed: 1.11.0]
SQLAlchemy-Utils==0.33.3
  - six [required: Any, installed: 1.11.0]
  - SQLAlchemy [required: >=1.0, installed: 1.2.8]
structlog==18.1.0
  - six [required: Any, installed: 1.11.0]
uvloop==0.10.1
validators==0.12.2
  - decorator [required: >=3.4.0, installed: 4.3.0]
  - six [required: >=1.4.0, installed: 1.11.0]
xmltodict==0.11.0
zeep==2.5.0
  - appdirs [required: >=1.4.0, installed: 1.4.3]
  - cached-property [required: >=1.3.0, installed: 1.4.2]
  - defusedxml [required: >=0.4.1, installed: 0.5.0]
  - isodate [required: >=0.5.4, installed: 0.6.0]
    - six [required: Any, installed: 1.11.0]
  - lxml [required: >=3.0.0, installed: 4.2.1]
  - pytz [required: Any, installed: 2018.4]
  - requests [required: >=2.7.0, installed: 2.18.4]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.7,>=2.5, installed: 2.6]
    - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - requests-toolbelt [required: >=0.7.1, installed: 0.8.0]
    - requests [required: <3.0.0,>=2.0.1, installed: 2.18.4]
      - certifi [required: >=2017.4.17, installed: 2018.4.16]
      - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
      - idna [required: <2.7,>=2.5, installed: 2.6]
      - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
  - six [required: >=1.9.0, installed: 1.11.0]

Python 3.6.5

рд╣рдо рдЕрдкрдиреЗ рдЬреЗрдирдХреАрдВрд╕ рдмрд┐рд▓реНрдб рдореЗрдВ рдПрдХ рд╣реА рдЪреАрдЬ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ:

+ pipenv install -d --system
Installing dependencies from Pipfile.lock (bd3aef)...
An error occurred while installing grpcio==1.12.1! Will try again.
An error occurred while installing mypy==0.610! Will try again.
An error occurred while installing numpy==1.14.5! Will try again.
An error occurred while installing psutil==5.4.6! Will try again.
An error occurred while installing pyasn1-modules==0.2.1! Will try again.
Installing initially failed dependencies...
Success installing grpcio==1.12.1!
Success installing mypy==0.610!
Success installing numpy==1.14.5!
Success installing psutil==5.4.6!
Success installing pyasn1-modules==0.2.1!

рд╣рдо рдЕрдкрдиреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ python:3.6.5-jessie docker рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ pipenv рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: RUN set -ex && pip install pipenv && pipenv install --system ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдЬреЗрдирдХреАрдВрд╕ рдмрд┐рд▓реНрдб рдореЗрдВ python:3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗред рдмрд╕ рдЗрддрдирд╛ рдмрджрд▓ рдЧрдпрд╛ рдХрд┐ python:3.6.5-jessie рдФрд░ рд╣рдо рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВ: рдЕрд╕рдлрд▓рддрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдлрд┐рд░ рдкреАрдЫреЗ рд╣рдЯрддреА рд╣реИрдВ рдФрд░ рд╕рдлрд▓ рд╣реЛрддреА рд╣реИрдВред

рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖рдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╣рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд╕рдордЭреЛ рдХрд┐ рдХреБрддреНрддрд╛ рд╣реИ рдЬреЛ рдмреАрдорд╛рд░ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╣рддреА рд╣реИ рдХрд┐ 'рдореЗрд░рд╛ рдХреБрддреНрддрд╛ рдЙрд▓реНрдЯреА рдХрд░ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдЪрд▓рддреЗ рд╣реИрдВ!' рдФрд░ рджреВрд╕рд░реЛрдВ рдХрд╛ рдПрдХ рдЭреБрдВрдб рдЕрдм 'рдореЗрд░реЗ рдХреБрддреНрддреЗ рдХреЛ рднреА рдЙрд▓реНрдЯреА рд╣реЛ рд░рд╣реА рд╣реИ!' рдХреНрдпрд╛ рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ рдЦрд░рд╛рдм рднреЛрдЬрди рдХрд░рддреЗ рдереЗ? рдХреМрди рд╕рд╛ рднреЛрдЬрди? рдХреНрдпрд╛ рд╡реЗ рд╡рд╣реА рдЦрд╛рдирд╛ рдЦрд╛ рд░рд╣реЗ рдереЗ? рдЕрдЧрд░ рдореБрдЭреЗ рдЦреБрдж рдПрдХ рдХрдЫреБрдЖ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЙрд▓реНрдЯреА рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХреНрдпрд╛ рдирд╛рдЯрдХ рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдХрд╛рд░рдХ рдереЗ?

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рджреГрд╢реНрдп рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдбрдВрдк рджрд┐рдЦрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИред

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

рдорд╛рдлреА, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЙрди рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЪрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╣рдорд╛рд░реЗ CI рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрд╕рдВрдЦреНрдпрдХ рд▓реЛрдЧ рдЬреЛ рдкрд┐рдкреЗрдирд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк _all_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ _exclusively_ рдирд┐рдЬреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА? рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдХрд┐рд╕реА рднреА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде? рдкрд┐рдкреЗрдирд╡ рдХреЗ рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдРрд╕рд╛ рд╣реЛрдиреЗ рд▓рдЧрд╛? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЬрд╡рд╛рдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдВрдзрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рдмрдирд╛рддреА рд╣реИрдВред

рдФрд░ рдЬрдм рддрдХ рдХреЛрдИ рдпрд╣ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд╡реНрдпрддреАрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХ рдбреЙрдХрдлрд╛рдЗрд▓ рдпрд╛ рдХреБрдЫ рдФрд░

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдЬреА рд░реЗрдкреЛ рдФрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рднреА рд╣реИред
рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдореБрджреНрджреЗ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛, рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░!

рд▓реЗ рдордВрджред 7 рдЕрдХреНрдЯреВрдмрд░ред 2018 ├а 09:33, рдбреИрди рд░рдпрд╛рди рд╕реВрдЪрдирд╛рдПрдВ @github.com ├йcrit:

рдФрд░ рдЬрдм рддрдХ рдХреЛрдИ рдпрд╣ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╢рд╛рдпрдж рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ - рдПрдХ рдХрд╛рдордЪреЛрд░ рдпрд╛ рдХреБрдЫ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pipenv/issues/1356#issuecomment-427635733 , рдпрд╛ рдореВрдХ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAcK2QorIRkvNx8xFFvDyC3RMCOiTMjIks5uibxugaJpZM4Rs3S3
ред

рдореБрдЭреЗ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдФрд░ рдкрд┐рдкреЗрдирд╡ рдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯред

рдФрд░ рдлрд┐рд░ рдкрд┐рдкреЗрдирд╡ рдиреЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

@techalchemy рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Dockerfile рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдмреБрд░рд╛ред

https://gist.github.com/hjwp/72489330407b85d7c52d29ec77c587e0

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд┐рдкреЗрдирд╡ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХреБрдЫ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _fails_ рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)

рдЖрдк рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

docker build -t repro .
docker run -t repro pytest  # will error bc pytest is not installed, altho it should be

рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ:

pipenv lock --requirements > requirements.txt
pip install -r requirements.txt

рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк editable = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ VCS рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рдЬрдирди рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @hjwp

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХрд▓ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдВрдд рддрдХ рдзрдХреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдк рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ --sequential рдпрд╛ рдЕрд╕рдлрд▓ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдХрд░)

@ рдПрдордХреНрдпреВрдЯреЛ рдЖрдкрдХрд╛ рдореБрджреНрджрд╛ рдЕрд▓рдЧ рд╣реИ, рдЖрдк рдЕрдЬрдЧрд░ 3.4 (рдЬреЛ рдХреБрдЫ рд╣реА рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЬреАрд╡рди рдХрд╛ рдЕрдВрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рдПрдХ рдХреНрд░рд┐рдкреНрдЯреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдмрд╕ рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рдХреГрдкрдпрд╛ рдЗрд╕рдореЗрдВ рдХреВрджрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдирддрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдореБрджреНрджрд╛ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдФрд░ рдЦреЛрд▓реЗрдВ!

рдлреЙрд▓реЛ-рдЕрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @techalchemy ! рдЬрдм рднреА рдореИрдВ VCS рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдореБрдЭреЗ editable = true рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдореЗрд░рд╛ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ ipython рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
pipenv install ipython

рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ

(v3.spi.rfid) pi<strong i="11">@raspberrypi</strong>:~/v3.spi.rfid $ pipenv install ipython
Installing ipythonтАж
Installing dependencies from Pipfile.lock (3a89f1)тАж
тЬФ Installation Succeeded
An error occurred while installing msgpack-python==0.5.6 --hash=sha256:378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b! Will try again.
An error occurred while installing socketio-client==0.7.2 --hash=sha256:64cd84fba79cf97f28c11e64d1fc42a2221f2d7a4fada05ab381e2d73d74d2c1! Will try again.
An error occurred while installing bcrypt==3.1.5 --hash=sha256:05d8b762cb8a9bd0ad92ee95ed34b6119200a8760b625dadacfe88537ae691a3 --hash=sha256:136243dc44e5bab9b61206bd46fff3018bd80980b1a1dfbab64a22ff5745957f --hash=sha256:1de0df7a9ca76d68ec8122573ae584aab78dcfb728fc2c78ecafb15750b79465 --hash=sha256:214c720cfcd394ab9fd1cac59303847b0d45cc8feeb8126ec55619c77d85ec19 --hash=sha256:290e07820d408e8c81f79f848279b95cef693d6e6ce148fa6b1e573e89a4305b --hash=sha256:2d60412b11994ab91d25572f780f8461748cecdb6014c23e33b2ea0aabc99782 --hash=sha256:62ff976497590c7ef714f426aff8b908f2a11686364bb01cfc7d338e86a2ee27 --hash=sha256:77c99c50bd7ac4e9e9f948015c4638176ebe0a495b22b6ae4857f3ba077b12d8 --hash=sha256:9af0a7e135e7f5feca9c16ba33064af545b33b7297c1bb65daedb11c0fa653c4 --hash=sha256:9b08088fd103eedfd750d832819555d1f96bc8bec749c6d35a3f3de3b9e8c98d --hash=sha256:a185efb05ef8bac9a531474abfefb8323f3ec8d524d308d6720657eaeda068b5 --hash=sha256:c7a733c4c309c9ab572644cf7f8779845addcd5ecf474bb5c376f05731842c41 --hash=sha256:cc3f53fa3287c0fc2bc1636e9514b896d4777444b03d9e0e4f16762a856bfe8a --hash=sha256:d216ee4e8e64d43d819acaf8aa0db6cb518859072152cf35ada4987bf5c92bff --hash=sha256:db3c7d712c4049eff365f00c9236279602af17c0ba44ca759008641c7fd892b7 --hash=sha256:e1bb330c56ddec65ad9ce989e9e8664901ce96badfe47853a5ed03bfeb76f91a --hash=sha256:efcaace6e2915434d84e865c44f0cfe34e802269378afbb39a4aa6381aaec78b --hash=sha256:f4431e01f1a5fdea95c78758e24c9565651499d92024ff34663b1ab12c8a10e5 --hash=sha256:fd21155abee7cd4c0ba8fad5138636f2531174ea79ad1751b25dc30d833e1723! Will try again.
An error occurred while installing cryptography==2.4.2 --hash=sha256:05a6052c6a9f17ff78ba78f8e6eb1d777d25db3b763343a1ae89a7a8670386dd --hash=sha256:0eb83a24c650a36f68e31a6d0a70f7ad9c358fa2506dc7b683398b92e354a038 --hash=sha256:0ff4a3d6ea86aa0c9e06e92a9f986de7ee8231f36c4da1b31c61a7e692ef3378 --hash=sha256:1699f3e916981df32afdd014fb3164db28cdb61c757029f502cb0a8c29b2fdb3 --hash=sha256:1b1f136d74f411f587b07c076149c4436a169dc19532e587460d9ced24adcc13 --hash=sha256:21e63dd20f5e5455e8b34179ac43d95b3fb1ffa54d071fd2ed5d67da82cfe6dc --hash=sha256:2454ada8209bbde97065453a6ca488884bbb263e623d35ba183821317a58b46f --hash=sha256:3cdc5f7ca057b2214ce4569e01b0f368b3de9d8ee01887557755ccd1c15d9427 --hash=sha256:418e7a5ec02a7056d3a4f0c0e7ea81df374205f25f4720bb0e84189aa5fd2515 --hash=sha256:471a097076a7c4ab85561d7fa9a1239bd2ae1f9fd0047520f13d8b340bf3210b --hash=sha256:5ecaf9e7db3ca582c6de6229525d35db8a4e59dc3e8a40a331674ed90e658cbf --hash=sha256:63b064a074f8dc61be81449796e2c3f4e308b6eba04a241a5c9f2d05e882c681 --hash=sha256:6afe324dfe6074822ccd56d80420df750e19ac30a4e56c925746c735cf22ae8b --hash=sha256:70596e90398574b77929cd87e1ac6e43edd0e29ba01e1365fed9c26bde295aa5 --hash=sha256:70c2b04e905d3f72e2ba12c58a590817128dfca08949173faa19a42c824efa0b --hash=sha256:8908f1db90be48b060888e9c96a0dee9d842765ce9594ff6a23da61086116bb6 --hash=sha256:af12dfc9874ac27ebe57fc28c8df0e8afa11f2a1025566476b0d50cdb8884f70 --hash=sha256:b4fc04326b2d259ddd59ed8ea20405d2e695486ab4c5e1e49b025c484845206e --hash=sha256:da5b5dda4aa0d5e2b758cc8dfc67f8d4212e88ea9caad5f61ba132f948bab859! Will try again.
An error occurred while installing pyyaml==3.13 --hash=sha256:3d7da3009c0f3e783b2c873687652d83b1bbfd5c88e9813fb7e5b03c0dd3108b --hash=sha256:3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf --hash=sha256:40c71b8e076d0550b2e6380bada1f1cd1017b882f7e16f09a65be98e017f211a --hash=sha256:558dd60b890ba8fd982e05941927a3911dc409a63dcb8b634feaa0cda69330d3 --hash=sha256:a7c28b45d9f99102fa092bb213aa12e0aaf9a6a1f5e395d36166639c1f96c3a1 --hash=sha256:aa7dd4a6a427aed7df6fb7f08a580d68d9b118d90310374716ae90b710280af1 --hash=sha256:bc558586e6045763782014934bfaf39d48b8ae85a2713117d16c39864085c613 --hash=sha256:d46d7982b62e0729ad0175a9bc7e10a566fc07b224d2c79fafb5e032727eaa04 --hash=sha256:d5eef459e30b09f5a098b9cea68bebfeb268697f78d647bd255a085371ac7f3f --hash=sha256:e01d3203230e1786cd91ccfdc8f8454c8069c91bee3962ad93b87a4b2860f537 --hash=sha256:e170a9e6fcfd19021dd29845af83bb79236068bf5fd4df3327c1be18182b2531! Will try again.
An error occurred while installing markupsafe==1.1.0 --hash=sha256:048ef924c1623740e70204aa7143ec592504045ae4429b59c30054cb31e3c432 --hash=sha256:130f844e7f5bdd8e9f3f42e7102ef1d49b2e6fdf0d7526df3f87281a532d8c8b --hash=sha256:19f637c2ac5ae9da8bfd98cef74d64b7e1bb8a63038a3505cd182c3fac5eb4d9 --hash=sha256:1b8a7a87ad1b92bd887568ce54b23565f3fd7018c4180136e1cf412b405a47af --hash=sha256:1c25694ca680b6919de53a4bb3bdd0602beafc63ff001fea2f2fc16ec3a11834 --hash=sha256:1f19ef5d3908110e1e891deefb5586aae1b49a7440db952454b4e281b41620cd --hash=sha256:1fa6058938190ebe8290e5cae6c351e14e7bb44505c4a7624555ce57fbbeba0d --hash=sha256:31cbb1359e8c25f9f48e156e59e2eaad51cd5242c05ed18a8de6dbe85184e4b7 --hash=sha256:3e835d8841ae7863f64e40e19477f7eb398674da6a47f09871673742531e6f4b --hash=sha256:4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3 --hash=sha256:525396ee324ee2da82919f2ee9c9e73b012f23e7640131dd1b53a90206a0f09c --hash=sha256:52b07fbc32032c21ad4ab060fec137b76eb804c4b9a1c7c7dc562549306afad2 --hash=sha256:52ccb45e77a1085ec5461cde794e1aa037df79f473cbc69b974e73940655c8d7 --hash=sha256:5c3fbebd7de20ce93103cb3183b47671f2885307df4a17a0ad56a1dd51273d36 --hash=sha256:5e5851969aea17660e55f6a3be00037a25b96a9b44d2083651812c99d53b14d1 --hash=sha256:5edfa27b2d3eefa2210fb2f5d539fbed81722b49f083b2c6566455eb7422fd7e --hash=sha256:7d263e5770efddf465a9e31b78362d84d015cc894ca2c131901a4445eaa61ee1 --hash=sha256:83381342bfc22b3c8c06f2dd93a505413888694302de25add756254beee8449c --hash=sha256:857eebb2c1dc60e4219ec8e98dfa19553dae33608237e107db9c6078b1167856 --hash=sha256:98e439297f78fca3a6169fd330fbe88d78b3bb72f967ad9961bcac0d7fdd1550 --hash=sha256:bf54103892a83c64db58125b3f2a43df6d2cb2d28889f14c78519394feb41492 --hash=sha256:d9ac82be533394d341b41d78aca7ed0e0f4ba5a2231602e2f05aa87f25c51672 --hash=sha256:e982fe07ede9fada6ff6705af70514a52beb1b2c3d25d4e873e82114cf3c5401 --hash=sha256:edce2ea7f3dfc981c4ddc97add8a61381d9642dc3273737e756517cc03e84dd6 --hash=sha256:efdc45ef1afc238db84cb4963aa689c0408912a0239b0721cb172b4016eb31d6 --hash=sha256:f137c02498f8b935892d5c0172560d7ab54bc45039de8805075e19079c639a9c --hash=sha256:f82e347a72f955b7017a39708a3667f106e6ad4d10b25f237396a7115d8ed5fd --hash=sha256:fb7c206e01ad85ce57feeaaa0bf784b97fa3cad0d4a5737bc5295785f5c613a1! Will try again.
An error occurred while installing odfpy==1.3.6 --hash=sha256:6bcaf3b23aa9e49ed8c8c177266539b211add4e02402748a994451482a10cb1b! Will try again.
An error occurred while installing cffi==1.11.5 --hash=sha256:151b7eefd035c56b2b2e1eb9963c90c6302dc15fbd8c1c0a83a163ff2c7d7743 --hash=sha256:1553d1e99f035ace1c0544050622b7bc963374a00c467edafac50ad7bd276aef --hash=sha256:1b0493c091a1898f1136e3f4f991a784437fac3673780ff9de3bcf46c80b6b50 --hash=sha256:2ba8a45822b7aee805ab49abfe7eec16b90587f7f26df20c71dd89e45a97076f --hash=sha256:3bb6bd7266598f318063e584378b8e27c67de998a43362e8fce664c54ee52d30 --hash=sha256:3c85641778460581c42924384f5e68076d724ceac0f267d66c757f7535069c93 --hash=sha256:3eb6434197633b7748cea30bf0ba9f66727cdce45117a712b29a443943733257 --hash=sha256:495c5c2d43bf6cebe0178eb3e88f9c4aa48d8934aa6e3cddb865c058da76756b --hash=sha256:4c91af6e967c2015729d3e69c2e51d92f9898c330d6a851bf8f121236f3defd3 --hash=sha256:57b2533356cb2d8fac1555815929f7f5f14d68ac77b085d2326b571310f34f6e --hash=sha256:770f3782b31f50b68627e22f91cb182c48c47c02eb405fd689472aa7b7aa16dc --hash=sha256:79f9b6f7c46ae1f8ded75f68cf8ad50e5729ed4d590c74840471fc2823457d04 --hash=sha256:7a33145e04d44ce95bcd71e522b478d282ad0eafaf34fe1ec5bbd73e662f22b6 --hash=sha256:857959354ae3a6fa3da6651b966d13b0a8bed6bbc87a0de7b38a549db1d2a359 --hash=sha256:87f37fe5130574ff76c17cab61e7d2538a16f843bb7bca8ebbc4b12de3078596 --hash=sha256:95d5251e4b5ca00061f9d9f3d6fe537247e145a8524ae9fd30a2f8fbce993b5b --hash=sha256:9d1d3e63a4afdc29bd76ce6aa9d58c771cd1599fbba8cf5057e7860b203710dd --hash=sha256:a36c5c154f9d42ec176e6e620cb0dd275744aa1d804786a71ac37dc3661a5e95 --hash=sha256:a6a5cb8809091ec9ac03edde9304b3ad82ad4466333432b16d78ef40e0cce0d5 --hash=sha256:ae5e35a2c189d397b91034642cb0eab0e346f776ec2eb44a49a459e6615d6e2e --hash=sha256:b0f7d4a3df8f06cf49f9f121bead236e328074de6449866515cea4907bbc63d6 --hash=sha256:b75110fb114fa366b29a027d0c9be3709579602ae111ff61674d28c93606acca --hash=sha256:ba5e697569f84b13640c9e193170e89c13c6244c24400fc57e88724ef610cd31 --hash=sha256:be2a9b390f77fd7676d80bc3cdc4f8edb940d8c198ed2d8c0be1319018c778e1 --hash=sha256:ca1bd81f40adc59011f58159e4aa6445fc585a32bb8ac9badf7a2c1aa23822f2 --hash=sha256:d5d8555d9bfc3f02385c1c37e9f998e2011f0db4f90e250e5bc0c0a85a813085 --hash=sha256:e55e22ac0a30023426564b1059b035973ec82186ddddbac867078435801c7801 --hash=sha256:e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4 --hash=sha256:ecbb7b01409e9b782df5ded849c178a0aa7c906cf8c5a67368047daab282b184 --hash=sha256:ed01918d545a38998bfa5902c7c00e0fee90e957ce036a4000a88e3fe2264917 --hash=sha256:edabd457cd23a02965166026fd9bfd196f4324fe6032e866d0f3bd0301cd486f --hash=sha256:fdf1c1dc5bafc32bc5d08b054f94d659422b05aba244d6be4ddc1c72d9aa70fb! Will try again.
An error occurred while installing flask-bcrypt==0.7.1 --hash=sha256:d71c8585b2ee1c62024392ebdbc447438564e2c8c02b4e57b56a4cafd8d13c5f! Will try again.
An error occurred while installing pycparser==2.19 --hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3! Will try again.
An error occurred while installing docopt==0.6.2 --hash=sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491! Will try again.
An error occurred while installing unicodecsv==0.14.1 --hash=sha256:018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc! Will try again.
An error occurred while installing simplegeneric==0.8.1 --hash=sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173! Will try again.
An error occurred while installing uwsgi==2.0.17.1 --hash=sha256:d2318235c74665a60021a4fc7770e9c2756f9fc07de7b8c22805efe85b5ab277! Will try again.
An error occurred while installing et-xmlfile==1.0.1 --hash=sha256:614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b! Will try again.
An error occurred while installing tablib==0.12.1 --hash=sha256:b8cf50a61d66655229993f2ee29220553fb2c80403479f8e6de77c0c24649d87! Will try again.
An error occurred while installing scandir==1.9.0 --hash=sha256:04b8adb105f2ed313a7c2ef0f1cf7aff4871aa7a1883fa4d8c44b5551ab052d6 --hash=sha256:1444134990356c81d12f30e4b311379acfbbcd03e0bab591de2696a3b126d58e --hash=sha256:1b5c314e39f596875e5a95dd81af03730b338c277c54a454226978d5ba95dbb6 --hash=sha256:346619f72eb0ddc4cf355ceffd225fa52506c92a2ff05318cfabd02a144e7c4e --hash=sha256:44975e209c4827fc18a3486f257154d34ec6eaec0f90fef0cca1caa482db7064 --hash=sha256:61859fd7e40b8c71e609c202db5b0c1dbec0d5c7f1449dec2245575bdc866792 --hash=sha256:a5e232a0bf188362fa00123cc0bb842d363a292de7126126df5527b6a369586a --hash=sha256:c14701409f311e7a9b7ec8e337f0815baf7ac95776cc78b419a1e6d49889a383 --hash=sha256:c7708f29d843fc2764310732e41f0ce27feadde453261859ec0fca7865dfc41b --hash=sha256:c9009c527929f6e25604aec39b0a43c3f831d2947d89d6caaab22f057b7055c8 --hash=sha256:f5c71e29b4e2af7ccdc03a020c626ede51da471173b4a6ad1e904f2b2e04b4bd! Will try again.
An error occurred while installing flask-uploads==0.2.1 --hash=sha256:53ecbd6033667d50ae02b63adebbaa33c7fc56c09e5293025810cf9d841ecb02! Will try again.
An error occurred while installing openpyxl==2.5.11 --hash=sha256:8b0c2a44f394a7a913a2e7cdcc1dc601d5f45c59b85a356e591e2ac5463e21e7! Will try again.
An error occurred while installing greenlet==0.4.15 --hash=sha256:000546ad01e6389e98626c1367be58efa613fa82a1be98b0c6fc24b563acc6d0 --hash=sha256:0d48200bc50cbf498716712129eef819b1729339e34c3ae71656964dac907c28 --hash=sha256:23d12eacffa9d0f290c0fe0c4e81ba6d5f3a5b7ac3c30a5eaf0126bf4deda5c8 --hash=sha256:37c9ba82bd82eb6a23c2e5acc03055c0e45697253b2393c9a50cef76a3985304 --hash=sha256:51503524dd6f152ab4ad1fbd168fc6c30b5795e8c70be4410a64940b3abb55c0 --hash=sha256:8041e2de00e745c0e05a502d6e6db310db7faa7c979b3a5877123548a4c0b214 --hash=sha256:81fcd96a275209ef117e9ec91f75c731fa18dcfd9ffaa1c0adbdaa3616a86043 --hash=sha256:853da4f9563d982e4121fed8c92eea1a4594a2299037b3034c3c898cb8e933d6 --hash=sha256:8b4572c334593d449113f9dc8d19b93b7b271bdbe90ba7509eb178923327b625 --hash=sha256:9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc --hash=sha256:9854f612e1b59ec66804931df5add3b2d5ef0067748ea29dc60f0efdcda9a638 --hash=sha256:99a26afdb82ea83a265137a398f570402aa1f2b5dfb4ac3300c026931817b163 --hash=sha256:a19bf883b3384957e4a4a13e6bd1ae3d85ae87f4beb5957e35b0be287f12f4e4 --hash=sha256:a9f145660588187ff835c55a7d2ddf6abfc570c2651c276d3d4be8a2766db490 --hash=sha256:ac57fcdcfb0b73bb3203b58a14501abb7e5ff9ea5e2edfa06bb03035f0cff248 --hash=sha256:bcb530089ff24f6458a81ac3fa699e8c00194208a724b644ecc68422e1111939 --hash=sha256:beeabe25c3b704f7d56b573f7d2ff88fc99f0138e43480cecdfcaa3b87fe4f87 --hash=sha256:d634a7ea1fc3380ff96f9e44d8d22f38418c1c381d5fac680b272d7d90883720 --hash=sha256:d97b0661e1aead761f0ded3b769044bb00ed5d33e1ec865e891a8b128bf7c656! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 75/75 тАФ 00:03:14
An error occurred while installing pydblite==3.0.4 --hash=sha256:79ed97d17b5954c6fa8927d9f36033cb4486d1304005057d506ac1dee999bad6! Will try again.
An error occurred while installing sqlalchemy==1.2.14 --hash=sha256:9de7c7dabcf06319becdb7e15099c44e5e34ba7062f9ba10bc00e562f5db3d04! Will try again.
Installing initially failed dependenciesтАж
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 22/22 тАФ 00:07:59
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/cli/command.py", line 254, in install
[pipenv.exceptions.InstallError]:       editable_packages=state.installstate.editables,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 1992, in do_install
[pipenv.exceptions.InstallError]:       skip_lock=skip_lock,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 862, in do_install_dependencies
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, False, failed_deps_queue, retry=False)
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ['Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple', 'Collecting msgpack-python==0.5.6 (from -r /tmp/pipenv-wizt1b_m-requirements/pipenv-w10z6g1r-requirement.txt (line 1))', '  Using cached https://www.piwheels.org/simple/msgpack-python/msgpack_python-0.5.6-cp35-cp35m-linux_armv7l.whl']
[pipenv.exceptions.InstallError]: ['THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.', '    msgpack-python==0.5.6 from https://www.piwheels.org/simple/msgpack-python/msgpack_python-0.5.6-cp35-cp35m-linux_armv7l.whl#sha256=8cf32ef40e4f187e9b406c22f89b6bcaf909fd7d05c177f16df52dab391cd27d (from -r /tmp/pipenv-wizt1b_m-requirements/pipenv-w10z6g1r-requirement.txt (line 1)):', '        Expected sha256 378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b', '             Got        8cf32ef40e4f187e9b406c22f89b6bcaf909fd7d05c177f16df52dab391cd27d']
ERROR: ERROR: Package installation failed...

рд╣рд╛рдп @jacekjab рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЖрдк рдЗрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдлрд▓рддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддрд┐ рд╕реЗ, рдореИрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧреИрд░-рдкреАрдкреАрдЖрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдорд╡рд░реНрддреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡реЗ рд╢реБрд░реВ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣реЗ рдФрд░ рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЧрдПред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдкреВрд░рд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрдкрдХрд╛ $ PATH, env рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рд╡рд╣ рд╕рд╛рдорд╛рди рдорджрдж рдХрд░реЗрдЧрд╛

рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк editable = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ VCS рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рдЬрдирди рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @hjwp

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХрд▓ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдВрдд рддрдХ рдзрдХреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдк рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ --sequential рдпрд╛ рдЕрд╕рдлрд▓ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдХрд░)

рд╣рд╛рдп @techalchemy , рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдпрд╣ рд╕рдорд╡рд░реНрддреА рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИред

рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП TL; DR, рдмрд╕ рдЕрдкрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрдорд╛рдВрдб рдореЗрдВ --sequential рдЬреЛрдбрд╝реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:

pipenv install --sequential
pipenv install --sequential -e .



md5-98183fa9892e1e1eacf016e14c79aa2b



pipenv sync --sequential

рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ # 3298 рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдиреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдВрдХрд▓реНрдк рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛

@changyuheng , рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ --sequential рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ , рддреЛ рдореЗрд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл Pipfile.lock рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рднреА рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ --verbose ) рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрдпреЛрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд...

рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ # 3537 рдЕрднреА рддрдХ рдирд╣реАрдВ рдЙрддрд░рд╛ рд╣реИред

рд╢реЗрд╖ рдкреАрдЖрд░рдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рд╕реАрдЖрдИ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдЬреЛ рд╣рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ - рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ --sequential рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдирдИ рд╕рдВрдХрд▓реНрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░рдг рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдХреА рдХреЗ рдкрд╣рд▓реЗ рд╡реАрд╕реАрдПрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдлрд┐рд░ рдЙрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЖрдкрдХреЗ Pipfile рдореЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рд░рд┐рдУрд▓рд╡рд░ рдХреЛ рдЦрд┐рд▓рд╛рддреА рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдХрд▓реНрдк рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдЬреНрдЮрд╛рдд рдмрд╛рдзрд╛рдУрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк _dont_ --sequential @

рдирд╣реАрдВред рдпрд╣ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рдЧрднрдЧ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдлрд▓ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рд╢реБрд░реВ-рдЕрд╕рдлрд▓ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛" рдХрд╣рддрд╛ рд╣реИред рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЗрд╕ рдмрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ _any_ VCS рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рднреА рдирд╣реАрдВред

рдПрдХ рдПрдХрд▓ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

pipenv install psycopg2

рдпрд╣ Psycopy2 рдмрдирд╛рдо psycopg2- рдмрд╛рдЗрдирд░реА рдореЗрд╕ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ: psycopg2- рдмрд╛рдЗрдирд░реА: рдХреНрдпреЛрдВ?

Psycopg2 рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдФрд░

рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдЬрдм рдЗрд╕ рдХреЗ рд▓рд┐рдП рддрдп PyPi рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ? рдЗрд╕ рд╡рд░реНрд╖ рдЕрдм рддрдХ, рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдарди рдореЗрдВ 1000 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдорд╛рд░реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪреИрдирд▓ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, "рдореЗрд░рд╛ рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рддреНрд░реБрдЯрд┐ рд╣реИ, '____ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред" "рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рддреНрд░реБрдЯрд┐ рдХрд╣реАрдВ рдереАред рдЕрдиреНрдпрдерд╛, рдФрд░ рд╣рдордиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓реЙрдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдПрдХ рд╡рд┐рд╖рдо рд░рд╛рд╢рд┐ рдЦрд░реНрдЪ рдХреА рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рджрд░реНрдж рд╣реИред :-(

рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдк editable = true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ VCS рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдкреНрд░рдЬрдирди рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @hjwp

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХрд▓ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдПрдХ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЕрдВрдд рддрдХ рдзрдХреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдк рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ --sequential рдпрд╛ рдЕрд╕рдлрд▓ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдХрд░)

рд╕реНрдерд╛рдкрд┐рдд рдХрдорд╛рдВрдб рдореЗрдВ --sequential рдЬреЛрдбрд╝рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ing рдореИрдВ рдЗрд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ ...

рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ

pipenv install psycopg2 --sequential рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛!

рд╣рд░ рдХреЛрдИ, рдореИрдВ рдкрд╛рдЗрдкреЗрдиреЗрд╡ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреА рдУрд░ рд╕реЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП: рд╣рд╛рдБ, рдпрд╣ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдмрдЧ рдХрдм рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред "рдпрд╣ рдЕрднреА рддрдХ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?"

рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ _right_ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдареАрдХ рдХрд░реЗрдВред @ рдирд┐рдХрд╡рд┐рд▓рд┐рдпрдореНрд╕-рдИрд╡реЗрдВрдЯрдмреНрд░рд╛рдЗрдЯ, рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЯрдХрд░рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд╣рдЬрд╛рд░реЛрдВ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдирд┐рд╡реЗрд╢ рдкрд░ рдЕрдЪреНрдЫрд╛ рдирд┐рд╡реЗрд╢ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдЦреБрдж рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЕрдкрдиреА рдЯреАрдо рдХрд╛ рд╕рдордп рдФрд░ рдирд┐рд░рд╛рд╢рд╛ рдмрдЪрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдереЛрдбрд╝рд╛ рдЙрдкрджреЗрд╢ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ! рд▓реЗрдХрд┐рди рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд╕рджреНрднрд╛рд╡рдирд╛ рдкрд░ рдорд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдордп рдореЗрдВ рдорд┐рдЯ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рд░ рдХреЛрдИ "рдХреНрдпреЛрдВ рдпрд╣ рдЕрднреА рддрдХ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?" рдЕрд╡реИрддрдирд┐рдХ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХреЛрдВ рдХреА рдПрдХ рдЯреАрдо рдореЗрдВ .... рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдЖрдкрдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдХрд╕рд╛рддреА рд╣реИ, рддреЛ рдореБрдЭреЗ рджреЛрд╖ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ, рдФрд░ рд╕реБрдВрджрд░ рдкрд┐рдкреЗрдирд╡ рдЯреАрдо рдирд╣реАрдВ; ;-)

рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣, рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдореЗрд░рд╛ рдореВрд▓ рдХрд╛рд░рдг рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдлреЗрдВрдХ рджреВрдВрдЧрд╛ред

рдореИрдВ рдПрдХ рдкреБрд░рд╛рдиреЗ 2011 рдХреЗ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореИрдХрдУрдПрд╕ рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ (10.13.6) рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 3.7.4 рд╣реИред

рдЯреАрдПрд▓; рдбреАрдЖрд░ - рдореЗрд░рд╛ рдмрд┐рд▓реНрдб рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реИрдХ рд╕реЗ рдмрд╛рд╣рд░ рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП, рдлрд┐рдХреНрд╕ xcode-select --install рд╕рд╛рде Xcode рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд░рд╣рд╛ рдерд╛

рдореЗрд░реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрд░рдг:

  1. рдореЗрд░реА рдореВрд▓ рд╕рдорд╕реНрдпрд╛ regex рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рд░рд╣реА
$ pipenv install regex
...
An error occurred while installing regex==2019.8.19 --hash=sha256:1e9f9bc44ca195baf0040b1938e6801d2f3409661c15fe57f8164c678cfc663f --hash=sha256:587b62d48ca359d2d4f02d486f1f0aa9a20fbaf23a9d4198c4bed72ab2f6c849 --hash=sha256:835ccdcdc612821edf132c20aef3eaaecfb884c9454fdc480d5887562594ac61 --hash=sha256:93f6c9da57e704e128d90736430c5c59dd733327882b371b0cae8833106c2a21 --hash=sha256:a46f27d267665016acb3ec8c6046ec5eae8cf80befe85ba47f43c6f5ec636dcd --hash=sha256:c5c8999b3a341b21ac2c6ec704cfcccbc50f1fedd61b6a8ee915ca7fd4b0a557 --hash=sha256:d4d1829cf97632673aa49f378b0a2c3925acd795148c5ace8ef854217abbee89 --hash=sha256:d96479257e8e4d1d7800adb26bf9c5ca5bab1648a1eddcac84d107b73dc68327 --hash=sha256:f20f4912daf443220436759858f96fefbfc6c6ba9e67835fd6e4e9b73582791a --hash=sha256:f2b37b5b2c2a9d56d9e88efef200ec09c36c7f323f9d58d0b985a90923df386d --hash=sha256:fe765b809a1f7ce642c2edeee351e7ebd84391640031ba4b60af8d91a9045890! 
...
  1. рдореИрдВрдиреЗ -v (рдХреНрд░рд┐рдпрд╛) рдХреЗ рд╕рд╛рде pipenv рдЪрд▓рд╛рдпрд╛ рдФрд░ bdist_wheel рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрд╛:
$ pipenv install -v regex
...
  Running command /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-wheel-42ajnw_w --python-tag cp37
  BASE_DIR is /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex
  /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/setuptools/dist.py:474: UserWarning: Normalizing '2019.08.19' to '2019.8.19'
    normalized_version,
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.11-x86_64-3.7
  creating build/lib.macosx-10.11-x86_64-3.7/regex
  copying regex_3/regex/__init__.py -> build/lib.macosx-10.11-x86_64-3.7/regex
  copying regex_3/regex/regex.py -> build/lib.macosx-10.11-x86_64-3.7/regex
  copying regex_3/regex/_regex_core.py -> build/lib.macosx-10.11-x86_64-3.7/regex
  creating build/lib.macosx-10.11-x86_64-3.7/regex/test
  copying regex_3/regex/test/__init__.py -> build/lib.macosx-10.11-x86_64-3.7/regex/test
  copying regex_3/regex/test/test_regex.py -> build/lib.macosx-10.11-x86_64-3.7/regex/test
  warning: build_py: byte-compiling is disabled, skipping.

  running build_ext
  building 'regex._regex' extension
  creating build/temp.macosx-10.11-x86_64-3.7
  creating build/temp.macosx-10.11-x86_64-3.7/regex_3
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c regex_3/_regex.c -o build/temp.macosx-10.11-x86_64-3.7/regex_3/_regex.o
  xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
  error: command 'clang' failed with exit status 1
  Building wheel for regex (setup.py): finished with status 'error'
  ERROR: Failed building wheel for regex
  Running setup.py clean for regex
  Running command /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all
  BASE_DIR is /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex
  /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/setuptools/dist.py:474: UserWarning: Normalizing '2019.08.19' to '2019.8.19'
    normalized_version,
  running clean
  removing 'build/temp.macosx-10.11-x86_64-3.7' (and everything under it)
  removing 'build/lib.macosx-10.11-x86_64-3.7' (and everything under it)
  'build/bdist.macosx-10.11-x86_64' does not exist -- can't clean it
  'build/scripts-3.7' does not exist -- can't clean it
  removing 'build'
Failed to build regex
Installing collected packages: regex
  Created temporary directory: /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-record-u8h1g1mx
  Running setup.py install for regex: started
    Running command /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-record-u8h1g1mx/install-record.txt --single-version-externally-managed --compile --install-headers /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/../include/site/python3.7/regex
    BASE_DIR is /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex
    /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/setuptools/dist.py:474: UserWarning: Normalizing '2019.08.19' to '2019.8.19'
      normalized_version,
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.11-x86_64-3.7
    creating build/lib.macosx-10.11-x86_64-3.7/regex
    copying regex_3/regex/__init__.py -> build/lib.macosx-10.11-x86_64-3.7/regex
    copying regex_3/regex/regex.py -> build/lib.macosx-10.11-x86_64-3.7/regex
    copying regex_3/regex/_regex_core.py -> build/lib.macosx-10.11-x86_64-3.7/regex
    creating build/lib.macosx-10.11-x86_64-3.7/regex/test
    copying regex_3/regex/test/__init__.py -> build/lib.macosx-10.11-x86_64-3.7/regex/test
    copying regex_3/regex/test/test_regex.py -> build/lib.macosx-10.11-x86_64-3.7/regex/test
    warning: build_py: byte-compiling is disabled, skipping.

    running build_ext
    building 'regex._regex' extension
    creating build/temp.macosx-10.11-x86_64-3.7
    creating build/temp.macosx-10.11-x86_64-3.7/regex_3
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c regex_3/_regex.c -o build/temp.macosx-10.11-x86_64-3.7/regex_3/_regex.o
    xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    error: command 'clang' failed with exit status 1
  Running setup.py install for regex: finished with status 'error'
Cleaning up...
  Removing source in /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex
Removed build tracker '/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-req-tracker-68pwd4_a'
ERROR: Command errored out with exit status 1: /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-record-u8h1g1mx/install-record.txt --single-version-externally-managed --compile --install-headers /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/../include/site/python3.7/regex Check the logs for full command output.
Exception information:
Traceback (most recent call last):
  File "/Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 188, in main
    status = self.run(options, args)
  File "/Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 407, in run
    use_user_site=options.use_user_site,
  File "/Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/pip/_internal/req/__init__.py", line 58, in install_given_reqs
    **kwargs
  File "/Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/pip/_internal/req/req_install.py", line 959, in install
    spinner=spinner,
  File "/Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 931, in call_subprocess
    raise InstallationError(exc_msg)
pip._internal.exceptions.InstallationError: Command errored out with exit status 1: /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-install-isftptee/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/74/nn92mwzn5p178mjyphzwhs6h0000gp/T/pip-record-u8h1g1mx/install-record.txt --single-version-externally-managed --compile --install-headers /Users/<user>/.local/share/virtualenvs/penv-EwluS9kv/bin/../include/site/python3.7/regex Check the logs for full command output.

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд░реЗрдЦрд╛ рдмрд╛рд╣рд░ рдЕрдЯрдХ рдЧрдИ:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

  1. рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдкрде рдореЗрдВ рдореЗрд░реА рдХреЛрдИ рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдереАред рдПрдХ рддреНрд╡рд░рд┐рдд Google рдЦреЛрдЬ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ https://apple.stackexchange.com/questions/321858/xcrun-missing-installing-xcode-command-line-tools-not-fixing-issue рдЬреИрд╕реЗ рд▓рд┐рдВрдХ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИрдВ Xcode рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХреА рдЦрд░рд╛рдм рд╕реНрдерд╛рдкрдирд╛ред

  2. рдКрдкрд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ macOS рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдореЗрд░рд╛ Xcode рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рдиреНрдп рдирд╣реАрдВ рдерд╛ред рдЙрдкрд░реЛрдХреНрдд рдлреЛрд░рдо рдореЗрдВ рдорд┐рд▓реА рд╕рд▓рд╛рд╣ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ xcode-select --install рд╕рд╛рде рдЙрдкрдпреБрдХреНрдд CLT рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рд╕рдВрдХреБрд▓ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рдЪреЗрддрд╛рд╡рдиреА / рдкрд┐рдкреЗрдирд╡ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдореВрд▓ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдЪреЗрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ)ред рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн / рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред

(рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореЛрдЯреЛ https://github.com/spulec/moto/issues/2465 рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд)ред
рдпрд╣ рдПрдХ рд╕рдВрдЧрд╛рдорд┐рддрд┐ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ (рд╡рд┐рд╡рд░рдг рдФрд░ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЯрд┐рдХрдЯ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЗрд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред

рдЕрдВрддрддрдГ рдореИрдВ рдпрдереЛрдЪрд┐рдд рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

Pipfile

[[рд╕реНрд░реЛрдд]]
url = " https://pypi.org/simple "
Ver_ssl = рд╕рддреНрдп
рдирд╛рдо = "рдкрд┐рдкреА"

[рд╕рдВрдХреБрд▓]
"рдмреЛрдЯреЛ 3" = " "mygeotab = " "
mysql-рдХрдиреЗрдХреНрдЯрд░-рдкрд╛рдпрдерди = " "pyodbc = " "
рдЕрдиреБрд░реЛрдз = " "xlrd = " "

[рджреЗрд╡-рд╕рдВрдХреБрд▓]
рдлреНрд░реАрдЬрдЧрдВрдЬ = " "рдореЗрдЯреНрд░рд┐рдХреНрд╕ = " "
рдореЛрдЯреЛ = " "pyfakefs = " "
рдкрд╛рдЗрд▓рд┐рдВрдЯ = " "рдкрд╛рдЗрдЯреЗрд╕реНрдЯ = " "
рдкрд╛рдЗрдЯреЗрд╕реНрдЯ-рдХреЛрд╡ = " "рдкрд╛рдЗрдЯреЗрд╕реНрдЯ-рдореЙрдХ = " "
рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ-рд╢реБрдЧрд░ = " "pytz = " "
рдЪрдХреНрд░рдкрд╛рда = "*"

[рдЖрд╡рд╢реНрдпрдХрддрд╛]
рдкрд╛рдпрдерди_рд╡рд░реНрдЬрди = "3.7"

рдФрд░ рдбреЙрдХ рд░рди рдХрдорд╛рдВрдб:

docker run --volume="$PWD":/app -it python:3-slim bash -c "pip3 install --upgrade pip; pip3 install pipenv; cd /app; apt-get update && apt-get install --yes awscli bc bsdmainutils curl freetds-dev g++ gcc git jq sshpass tdsodbc openssh-client rsync unixodbc-dev zip; pipenv sync --bare --three; pipenv install --skip-lock --dev"

(SNIP all the pre-setup & apt stuff)

Creating a virtualenv for this projectтАж
Pipfile: /app/Pipfile
Using /usr/local/bin/python (3.7.3) to create virtualenvтАж
та╣ Creating virtual environment...Already using interpreter /usr/local/bin/python
Using base prefix '/usr/local'
New python executable in /root/.local/share/virtualenvs/app-4PlAip0Q/bin/python
Installing setuptools, pip, wheel...
done.

тЬФ Successfully created virtual environment! 
Virtualenv location: /root/.local/share/virtualenvs/app-4PlAip0Q
Installing dependencies from Pipfile.lock (63414b)тАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 26/26 тАФ 00:00:31
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Installing dependencies from PipfileтАж
An error occurred while installing metrics! Will try again.
An error occurred while installing moto! Will try again.
An error occurred while installing pylint! Will try again.
An error occurred while installing pytest-cov! Will try again.
An error occurred while installing pytest-mock! Will try again.
An error occurred while installing pytest-sugar! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 17/17 тАФ 00:00:54
Installing initially failed dependenciesтАж
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 6/6 тАФ 00:00:58
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

Screen Shot 2020-01-10 at 00 46 06

рд▓рдЧрддрд╛ рд╣реИ рд╕рдВрдмрдВрдзрд┐рдд ...

рдиреАрдЪреЗ lxml рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред
рдкрд┐рдкреЗрдирд╡ рдиреЗ lxml рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛

рддреНрд░реБрдЯрд┐: рдЕрдкрд╡рд╛рдж:
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorurllib3response.py", рдкрдВрдХреНрддрд┐ 425, _errer_catcher рдореЗрдВ
рдкреНрд░рд╛рдкреНрддрд┐
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorurllib3response.py", рдкрдВрдХреНрддрд┐ 507, рдкрдврд╝рдиреЗ рдореЗрдВ
data = self._fp.read (amt) рдирд╣реАрдВ рддреЛ fp_closed рдФрд░ b ""
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorcachecontrolfilewrapper.py", рдкрдВрдХреНрддрд┐ 62, рдкрдврд╝рдиреЗ рдореЗрдВ
рдбреЗрдЯрд╛ = рд╕реНрд╡ред _ fp.read (amt)
рдлрд╝рд╛рдЗрд▓ "c: usershivamappdatalocalprospythonpython38-32libhttpclient.py", рдкрдВрдХреНрддрд┐ 458, рдкрдврд╝рдиреЗ рдореЗрдВ
n = self.readinto (b)
рдлрд╛рдЗрд▓ "c: usersshivamappdatalocalprogramspythonpython38-32libhttpclient.py", рдкрдВрдХреНрддрд┐ 502, рд░реАрдбрд┐рдВрдЯреЛ рдореЗрдВ
n = self.fp.readinto (b)
рдлрд╛рдЗрд▓ "c: usersshivamappdatalocalprospythonpython38-32libsocket.py", рдкрдВрдХреНрддрд┐ 669, рд░реАрдбрд┐рдВрдЯреЛ рдореЗрдВ
рд╕реНрд╡рдВрдп рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ ред_sock.recv_into (b)
рдлрд╝рд╛рдЗрд▓ "c: usersshivamappdatalocalprospythonpython38-32libssl.py", рдкрдВрдХреНрддрд┐ 1241, recv_into рдореЗрдВ
рд╕реНрд╡ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред
рдлрд╝рд╛рдЗрд▓ "c: usersshivamappdatalocalprospythonpython38-32libssl.py", рдкрдВрдХреНрддрд┐ 1099, рдкрдврд╝рдиреЗ рдореЗрдВ
рд╕реНрд╡рдВрдп рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ ред_lolojjread (рд▓реЗрди, рдмрдлрд░)
рд╕реЙрдХреЗрдЯ.рдЯрд╛рдЗрдордЖрдЙрдЯ: рд░реАрдб рдСрдкрд░реЗрд╢рди рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛

рдЙрдкрд░реЛрдХреНрдд рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реБрдЖ:

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internalclibase_command.py", рдкрдВрдХреНрддрд┐ 188, _main рдореЗрдВ
рд╕реНрдерд┐рддрд┐ = рд╕реНрд╡.рд░реБрдг (рд╡рд┐рдХрд▓реНрдк, рдЖрд░реНрдЧрдиреНрд╕)
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_internalclireq_command.py", рдкрдВрдХреНрддрд┐ 185, рдЖрд╡рд░рдг рдореЗрдВ
рд╡рд╛рдкрд╕реА func (рд╕реНрд╡рдпрдВ, рд╡рд┐рдХрд▓реНрдк, args)
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internalcommandsinstall.py", рдкрдВрдХреНрддрд┐ 332, рд░рди рдореЗрдВ
рдЖрд╡рд╢реНрдпрдХрддрд╛_рд╕реЗрдЯ = resolver.resolve (
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internalresolutionlegacyresolver.py", рдкрдВрдХреНрддрд┐ 179, рд╕рдВрдХрд▓реНрдк рдореЗрдВ
рдЦреЛрдЬрд╛ рдЧрдпрд╛_рд░реЗрдХреНрдЬрд╝реЗрдВрдбреЗрдВрдб (рд╕реНрд╡ ._рд╕реЗрд▓реНрдл_рдСрди (рдЖрд╡рд╢реНрдпрдХрддрд╛_рд╕реЗрдЯ, рд░реАрдХ))
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internalresolutionlegacyresolver.py", рдкрдВрдХреНрддрд┐ 362, _resc_one рдореЗрдВ
abstract_dist = self._get_abstract_dist_for (req_to_install)
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internalresolutionlegacyresolver.py", рдкрдВрдХреНрддрд┐ 314, _get_abstract_dist_for рдореЗрдВ
abstract_dist = self.preparer.prepare_linked_requirement (req)
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internaloperationsprepre.py", рдкрдВрдХреНрддрд┐ 467, in_linked_reireirement
local_file = unpack_url (
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_internaloperationsprepre.py", рдкрдВрдХреНрддрд┐ 255, unpack_url рдореЗрдВ
рдлрд╝рд╛рдЗрд▓ = get_http_url (
рдлрд╝рд╛рдЗрд▓ "C: UsersShivam.virtualenvsProjects-Muah_USQlibsite-packagespip_internaloperationsprepre.py", рд▓рд╛рдЗрди 129, get_http_url рдореЗрдВ
from_path, content_type = _download_http_url (
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_internaloperationsprepre.py", рдкрдВрдХреНрддрд┐ 281, _download_http_url рдореЗрдВ
рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдЪрдВрдХ рдХреЗ рд▓рд┐рдП:
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_internalcliprogress_bars.py", рд▓рд╛рдЗрди 166, iter рдореЗрдВ
рдЗрд╕рдореЗрдВ x рдХреЗ рд▓рд┐рдП:
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_internalnetworkutils.py", рдкрдВрдХреНрддрд┐ 15, response_chunks рдореЗрдВ
chunk in response.raw.stream (
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorurllib3response.py", рдкрдВрдХреНрддрд┐ 564, рдзрд╛рд░рд╛ рдореЗрдВ
data = self.read (amt = amt, decode_content = decode_content)
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorurllib3response.py", рдкрдВрдХреНрддрд┐ 529, рдкрдврд╝рдиреЗ рдореЗрдВ
рдЕрдзреВрд░рд╛ рдЙрдард╛рдПрдВ (рд╕реНрд╡ ._fp_bytes_read, self.length_remaining)
рдлрд╝рд╛рдЗрд▓ "c: usershivamappdatalocalprospythonpython38-32libcontextlib.py", рдкрдВрдХреНрддрд┐ 131, __exit__ рдореЗрдВ
self.gen.throw (рдкреНрд░рдХрд╛рд░, рдорд╛рди, рдЯреНрд░реЗрд╕рдмреИрдХ)
рдлрд╝рд╛рдЗрд▓ "C: UsersSiviv.virtualenvsProjects-Muah_USQlibsite-packagespip_vendorurllib3response.py", рдкрдВрдХреНрддрд┐ 430, _error -catcher рдореЗрдВ
ReadTimeoutError (self._pool, рдХреЛрдИ рдирд╣реАрдВ, "рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдкрдврд╝реЗрдВ") рдмрдврд╝рд╛рдПрдБред
pip._vendor.urllib3.exception.ReadTimeoutError: HTTPSConnectionPool (host = 'files.pythonhosted.org', port = 443): рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдкрдврд╝реЗрдВред

image
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?
рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАуАВ

@WalkOnMars

image
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?
рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАуАВ

рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ:
image

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛, рдпрд╣ 3.7 рдерд╛
рдореЗрд░рд╛ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг 3.7.4 рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

marc-fez picture marc-fez  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hynek picture hynek  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ipmb picture ipmb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jacek-jablonski picture jacek-jablonski  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Californian picture Californian  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ