<p>рдкрд┐рдкреЗрдирд╡ рдЗрдВрд╕реНрдЯреЙрд▓ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдордИ 2017  ┬╖  107рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/pipenv

рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж pipenv install рдЪрд▓рд╛рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ ~ 5 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рдПрдХ SSD рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬрд╝ 10 рдорд╢реАрди рдкрд░ред

рдЙрд╕ рд╕рдордп рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ Locking [packages] dependencies... рдЕрдВрджрд░ рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдХреБрдЫ рджреНрд╡рд┐рдШрд╛рдд-рдпрд╛-рдмрджрддрд░ рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ?

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рдХреЛ рдиреАрдЪреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдкрдиреА рдХреБрдЫ рдирд┐рдЬреА рд░реЗрдкреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛:

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

[packages]
alembic = "==0.8.4"
amqp = "==1.4.7"
analytics-python = "==1.2.5"
anyjson = "==0.3.3"
billiard = "==3.3.0.20"
braintree = "==3.20.0"
celery = "==3.1.18"
coverage = "==4.0.3"
docopt = "==0.4.0"
eventlet = "==0.19.0"
flake8 = "==3.0.4"
Flask-Cors = "==2.1.2"
Flask-Login = "==0.3.2"
Flask = "==0.12.1"
funcsigs = "==0.4"
fuzzywuzzy = "==0.12.0"
gcloud = "==0.14.0"
html2text = "==2016.9.19"
itsdangerous = "==0.24"
Jinja2 = "==2.8"
jsonpatch = "==1.15"
jsonschema = "==2.5.1"
PyJWT = "==1.4.2"
kombu = "==3.0.30"
LayerClient = "==0.1.9"
MarkupSafe = "==0.23"
mixpanel = "==4.3.0"
mock = "==1.3.0"
nose-exclude = "==0.4.1"
nose = "==1.3.7"
numpy = "==1.12.1"
pdfrw = "==0.3"
Pillow = "==4.1.0"
pusher = "==1.6"
pycountry = "==1.20"
pycryptodome = "==3.4.5"
pymongo = "==3.2"
PyMySQL = "==0.7.4"
python-dateutil = "<=2.5.1"
python-Levenshtein = "==0.12.0"
python-magic = "==0.4.6"
python-coveralls = "==2.9.0"
pytz = "==2015.6"
raygun4py = "==3.1.2"
"repoze.retry" = "==1.3"
requests = "==2.8.1"
sendgrid = "==2.2.1"
slacker = "==0.7.3"
SQLAlchemy-Enum34 = "==1.0.1"
SQLAlchemy-Utils = "==0.31.6"
SQLAlchemy = "==1.1.9"
typing = "==3.5.2.2"
twilio = "==5.6.0"
Unidecode = "==0.4.19"
voluptuous = "==0.8.11"
Wand = "==0.4.4"
watchdog = "==0.8.3"
Werkzeug = "==0.12.1"
wheel = "==0.24.0"
WTForms = "==2.0.2"
xmltodict = "==0.9.2"
zeep = "==0.24.0"

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

рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд╕рднреА рдореБрджреНрджреЗ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИрдВ? рд▓реЙрдХ-рд╕реНрдЯреЗрдк рд╣реИрдВрдЧ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдПрдХ рднреА рдЪреАрдЬрд╝ рдХреЛ рдкрд┐рдкреЗрдирд╡ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

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

рдЕрд░реЗ рдлрд┐рд░ рд╕реЗ @Diggsey , рдпрд╣ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЕрднреА рдкрд░рд┐рд╡рд░реНрддрди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ projects.py API рдХреЗ рд▓рд┐рдП рдЯреВрдЯ рд░рд╣реЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдЧрд▓реА рдмрдбрд╝реА рд░рд┐рд▓реАрдЬрд╝ рддрдХ рд░реБрдХрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░ рд▓реЗрдВрдЧреЗред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред

рд╣рдордиреЗ рдЗрд╕ рдкрд░ PyCon рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ред рдпрд╣ рдЬрд▓реНрдж рд╣реА рддреЗрдЬ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЕрднреА рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдзреАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЬрдо рд░рд╣рд╛ рд╣реИ ...

рдПрдХ pipenv install my_package рдпрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг pipenv install рдореБрдЭреЗ 20 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреБрд╖реНрдЯрд┐, рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рднреА рдХреБрдЫ рдирд╣реАрдВред рдХреНрдпрд╛ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдзреАрдорд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ 5 рд╕реЗ 10 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред

рдЕрд░реЗ @NicolasWebDev, pipenv рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ delegator.py рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╡рд╣ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИ? рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореБрджреНрджрд╛ рдерд╛ рдЬрд┐рд╕реЗ v3.6.0 рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдм рдХреБрдЫ рдЕрдк рдЯреВ рдбреЗрдЯ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкрд┐рдкрдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп @nateprewitt , рдЖрдк рд╕рд╣реА рдереЗ, рдореИрдВ v3.5.x рдкрд░ рдерд╛ред 4.1.1 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдлреНрд░реАрдЬрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ред рдЕрдм рдЗрд╕рдореЗрдВ рдЕрднреА рднреА 5 рдорд┐рдирдЯ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ!

рд╢реЛрд░ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рд╣рдореЗрд╢рд╛ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж!

рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ @NicolasWebDev! рд╣рдо рдЗрд╕реЗ рдФрд░ рдЧрддрд┐ рджреЗрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ #373 рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдПрдХ рдХрджрдо рдФрд░ рдХрд░реАрдм рд╣реЛрдЧрд╛ред

@Diggsey @NicolasWebDev, рдореИрдВ рд╕рд┐рд░реНрдл 4.1.2 рдЬреЛ рдЗрди рдЧрддрд┐ рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЕрднреА рднреА рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдкрд┐рдкреЗрдирд╡ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╕рдордп рдХреЛ рддреЗрдЬ рдХрд░реЗрдЧрд╛ред

@nateprewitt рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, pipenv рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рддреЗрдЬрд╝ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди pipenv lock рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдЕрднреА рднреА рдХрдИ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ - рдпрд╣ рдЕрднреА рднреА рд╡рд┐рд╢рд╛рд▓ рдХреЗ рд▓рд┐рдП Locking [packages] dependencies... рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЙрд╕ рд╕рдордп рдХрд╛ рдмрд╣реБрдорддред

@Diggsey , рдЙрд╕ рд╕рдордп рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрд╕ Pipfile рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рднреА рдкрд┐рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЗрди рд╕рднреА рдХреЛ рд╕реАрдзреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рджреВрд╕рд░реЛрдВ рдХреА рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ?

@nateprewitt рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ - рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ?

рд╣рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЙрдХ рд╕рдордп рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ Pipfile.lock рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдкрд┐рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛, рдЙрдк-рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рд╢реНрд░реЗрдгреА рдирд┐рд░реНрднрд░рддрд╛ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрдХреЗрдЬ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ, рдХреНрдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

@Diggsey рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрд╕ рдкрд░

рдпрд╣ рдПрдХ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдкрд┐рдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреИрдХреЗрдЬ рдХреИрд╢рд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдкрд┐рдкреЗрдирд╡ рдкрд╛рдЗрдк рдХреИрд╢ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ?

рдкрд┐рдкреЗрдирд╡ рд╕рд┐рд░реНрдл рдкрд╛рдЗрдк рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреИрд╢ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рддрдп! рддрд╛рд▓рд╛ рдЕрдм рддреЗрдЬреА рд╕реЗ рджреБрд╖реНрдЯ рд╣реИред

рдУрд╣ рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдкрд░ рд╕рднреА рдХреЛ рдкрд┐рдкреЗрдирд╡ рдореЗрдВ рдзрдХреЗрд▓рдиреЗ рд╕реЗ рдореЗрд░реА рдкреАрда рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рдереАред

рд╡рд╛рд╣, рдЕрдЪреНрдЫрд╛, рдпрд╣ рд╕рдЪрдореБрдЪ рдореЗрд░реЗ рд▓рд┐рдП 100x рд╕реНрдкреАрдбрдЕрдк рд╕реЗ рдЕрдзрд┐рдХ рдерд╛, рдФрд░ рдЗрд╕рдиреЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдШрд░реНрд╖ рднреА рдкрдХрдбрд╝рд╛ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝ рдкрд╛рдпрд╛ рдерд╛!

рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ verbose рдзреНрд╡рдЬ pipenv lock - рдореИрдВ рдХреЗрд╡рд▓ рд╡рд░реНрдмреЛрдЬрд╝ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП piptools/logging.py рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдШрд░реНрд╖ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рджрд┐рдпрд╛ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрддред

рдореБрдЭреЗ рд╢рд╛рдпрдж рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ :) рдпрд╣ рдХрд╣рд╛рдБ рддрдп рд╣реИ? рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ 4 рджрд┐рди рдкрд╣рд▓реЗ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ master рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, pipenv install рдЕрднреА рднреА рдзреАрдорд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА:

  • pipenv рдлреИрдВрд╕реА рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ я╕П ЁЯН░ я╕П
  • рджреЛрдиреЛрдВ рдирд╡реАрдирддрдо рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ pipenv рд╕реЗ рдФрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг master
  • рдПрдХрд▓ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг (5.3.5.) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ 3:40 рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ:

тИЩ time pipenv install --dev raven
Installing raven...
Collecting raven
  Using cached raven-6.1.0-py2.py3-none-any.whl
Collecting contextlib2 (from raven)
  Using cached contextlib2-0.5.5-py2.py3-none-any.whl
Installing collected packages: contextlib2, raven
Successfully installed contextlib2-0.5.5 raven-6.1.0

Adding raven to Pipfile's [dev-packages]...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock!
pipenv install --dev raven  10,11s user 2,77s system 5% cpu 3:40,04 total

master рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдЕрднреА рднреА рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ (рдПрдХ рдкреИрдХреЗрдЬ, +10 рдорд┐рдирдЯ)

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдЕрднреА рд╕рдорд╛рдкреНрдд рд╣реБрдЖ рд╣реИ:

pipenv install graphene_django  8,03s user 1,28s system 1% cpu 11:23,11 total

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдХрднреА-рдХрднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓реЗрддреА рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ c рд╕рдВрдХрд▓рди рд╣реИрдВред рдЕрдкрдирд╛ Pipfile рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдХрднреА-рдХрднреА рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рдзреАрдорд╛ рдерд╛ред рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЕрдЧрд░ рдпрд╣ рдореЗрд░реА рддрд░рдл рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реА рдкрд┐рдкрдлрд╛рдЗрд▓ рд╣реИ:

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

[dev-packages]
pytest = "*"
pytest-django = "*"
pytest-testmon = "*"
pytest-watch = "*"
django-debug-toolbar = "*"
raven = "*"

[packages]
dj-database-url = "*"
Django = "*"
djangorestframework = "*"
gunicorn = "*"
newrelic = "*"
psycopg2 = "*"
requests = "*"
whitenoise = "*"
graphene-django = "*"

psycopg2 рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдФрд░ рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдкрдХреА рдЧрддрд┐ рдХрд┐рддрдиреА рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

$ pipenv install raven рдмрд╕ рдореЗрд░реЗ рд▓рд┐рдП 1s рдХреА рддрд░рд╣ рд▓рдЧ рдЧрдпрд╛ред

$ рдкрд┐рдкреЗрдирд╡ рдЗрдВрд╕реНрдЯрд╛рд▓ рд░реЗрд╡реЗрди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл 1s рдХреА рддрд░рд╣ рд▓рд┐рдпрд╛ред

рдореИрдВ рдпрд╣реА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛! рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╡рд░реНрдмреЛрдЬрд╝ рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?

рдореИрдВрдиреЗ psycopg2 рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдпрд╛рджрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред pipenv install raven рдЪрд▓рд╛рдирд╛ рдХреБрдЫ рджреЗрд░ рдХреЗ рд▓рд┐рдП рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

  • рдкрд╛рдпрдерди 3.6.2
  • рдореИрдХреЛрдЬрд╝ 10.12.6

рдореБрдЭреЗ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ рд░реЗрд╡реЗрди рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

$ pip install raven рдЕрдВрджрд░ $ pipenv shell рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╣рд╛рдВ рднреА рдзреАрдорд╛ рд╣реИред

рд╕рднреА рдкрд┐рдкреЗрдирд╡ рдкрд╛рдЗрдк рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ "рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб" рд╣реИ

рд╡рд╣ рддрддреНрдХрд╛рд▓ рд╣реИ:

тИЩ time pip install raven                                                                                                                                 19:38  tricoder<strong i="6">@issac</strong>
Requirement already satisfied: raven in /Users/tricoder/.envs/lingui-api-VE1OToiy/lib/python3.6/site-packages
Requirement already satisfied: contextlib2 in /Users/tricoder/.envs/lingui-api-VE1OToiy/lib/python3.6/site-packages (from raven)
noglob pip install raven  0,54s user 0,15s system 76% cpu 0,900 total

pipenv рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд▓рдЧрднрдЧ 2-3 рдорд┐рдирдЯ (рдЕрдВрджрд░/рдмрд╛рд╣рд░ pipenv shell ) рд▓рдЯрдХрддрд╛ рд╣реИред

тИЩ time pipenv install raven                                                                                                                              19:39  tricoder<strong i="12">@issac</strong>
Installing raven...
Requirement already satisfied: raven in /Users/tricoder/.envs/lingui-api-VE1OToiy/lib/python3.6/site-packages
Requirement already satisfied: contextlib2 in /Users/tricoder/.envs/lingui-api-VE1OToiy/lib/python3.6/site-packages (from raven)

Adding raven to Pipfile's [packages]...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock!
pipenv install raven  4,49s user 0,46s system 2% cpu 3:21,17 total

@Diggsey рдХреНрдпрд╛ рдЖрдк --verbose рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕рд╛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@tricoder42 рд▓реЙрдХрд┐рдВрдЧ рд╕реНрдЯреЗрдк рдпрд╛ рдЗрдВрд╕реНрдЯрд╛рд▓ рд╕реНрдЯреЗрдк рдХрд╛ рдзреАрдорд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ? рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

`` `рдЦреЛрд▓
$ рд╕рдордп рдкрд┐рдкреЗрдирд╡ рд░реЗрд╡реЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рд░реЗрд╡реЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ ...
рд░реЗрд╡реЗрди рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛
рдХреИрд╢реНрдб рд░реЗрд╡реЗрди-6.1.0-py2.py3-none-any.whl . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрддреБрд╖реНрдЯ рд╣реИ: /Users/kennethreitz/.local/share/virtualenvs/pipenv-u9yqWeFK/lib/python3.6/site-packages (рд░реЗрд╡реЗрди рд╕реЗ) рдореЗрдВ рд╕рдВрджрд░реНрднрд▓рд┐рдм2
рдПрдХрддреНрд░рд┐рдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: рд░реЗрд╡реЗрди
рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рд░реЗрд╡реЗрди-6.1.0

рдкрд┐рдкрдлрд╛рдЗрд▓ рдХреЗ [рдкреИрдХреЗрдЬ] рдореЗрдВ рд░реЗрд╡реЗрди рдЬреЛрдбрд╝рдирд╛ ...
рд▓реЙрдХрд┐рдВрдЧ [рджреЗрд╡-рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛...
рд▓реЙрдХрд┐рдВрдЧ [рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛...
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд┐рдкрдлрд╛рдЗрд▓.рд▓реЙрдХ!
9.30 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 5.49 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 0.42 sys

рдпрд╣ 50:50 рдХреА рддрд░рд╣ рд╣реИ рдореИрдВ nstalling:locking

@tricoder42 рдФрд░ рдЖрдк рдирд╡реАрдирддрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рдЯреАрдХ рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдиреЗ рджреЗрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИрдВ:

тИЩ pipenv --version                                                                                                                                       19:42  tricoder<strong i="6">@issac</strong>
pipenv, version 5.3.5
тИЩ pipsi upgrade git+https://github.com/kennethreitz/pipenv.git#egg=pipenv                                                                                19:45  tricoder<strong i="9">@issac</strong>
Collecting pipenv from git+https://github.com/kennethreitz/pipenv.git#egg=pipenv
  Cloning https://github.com/kennethreitz/pipenv.git to /private/var/folders/g9/1wbckv154mbby3tm411z_m340000gn/T/pip-build-se4ao5/pipenv
...
Installing collected packages: pipenv
  Found existing installation: pipenv 5.3.5
    Uninstalling pipenv-5.3.5:
      Successfully uninstalled pipenv-5.3.5
  Running setup.py install for pipenv ... done
Successfully installed pipenv-5.3.5

`` `рдЦреЛрд▓
$ рд╕рдордп рдкрд┐рдкреЗрдирд╡ рдЗрдВрд╕реНрдЯрд╛рд▓
рдХреЛрдИ рдкреИрдХреЗрдЬ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред
Pipfile /Users/kennethreitz/pipenv/testapp/Pipfile. рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдо рдорд╛рдирддреЗ рд╣реБрдПред
Pipfile.lock рдирд╣реАрдВ рдорд┐рд▓рд╛, рдмрдирд╛ рд░рд╣рд╛ рд╣реИ...
рд▓реЙрдХрд┐рдВрдЧ [рджреЗрд╡-рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛...
рд▓реЙрдХрд┐рдВрдЧ [рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛...
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд┐рдкрдлрд╛рдЗрд▓.рд▓реЙрдХ!
Pipfile.lock рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ...
[==============================] 22/22 - 00:00:37
58.94 рд╡рд╛рд╕реНрддрд╡рд┐рдХ 40.51 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 8.62 sys

рдпрд╣ рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдкрд╣рд▓реЗ рдкреИрдХреЗрдЬ рдХреЛ рдирдП рдирдП рдкрд┐рдкреЗрдирд╡ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВред рдореИрдВ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ pipenv --three рдХреЗ рдмрдЬрд╛рдп pipenv --python python3.6

@tricoder42 рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ Google рд╣реИрдВрдЧрдЖрдЙрдЯ рдкрд░

рдпрд╛ рдпрджрд┐ рдЖрдк Messages.app рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо Apple рд╕реНрдХреНрд░реАрди рд╢реЗрдпрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЬреЛрдбрд╝рдирд╛! рдореИрдВ рд╣реВрдБ [email protected]ред

рдореИрдВ рдПрдХ рдореАрдЯрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрдкрд▓рдмреНрдз рд░рд╣реВрдВрдЧрд╛ред

рдардВрдбрд╛! рдореИрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕рд╛рдлрд╝ рдФрд░ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБрдЧрд╛ рдФрд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред рдореИрдВ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реВрдБ

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ - рд╣рдо рддрдм рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗред рдореБрдЭреЗ Messages.app рдкрд░ рдЬреЛрдбрд╝реЗрдВ :)

рдХрд┐рд╕реА рдХреЛ рднреА рдмреЗрд╣рдж рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЖ рд░рд╣реА рд╣реИрдВ Locking рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ v11.9.0 , рдореИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрджрд╛рд╡рдирддрд┐ рдкрд╛рдпрд╛ v9.0.0 рдПрдХ 5m30s 1m36s рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╕реНрдерд╛рдкрд┐рдд рд▓реЗрддрд╛ рд╣реИред

@ryantuck рдореИрдВ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк 9.0.3 рдкрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд┐рди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░рд╛рд╢рд┐ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ --skip-lock рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдмрд┐рдВрджреБ

--skip-lock рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ pipenv install --system --python=3.6 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рд╕рд┐рд╕реНрдЯрдо рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ Pipfile.lock рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ pip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдХрднреА рднреА рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред

тАФsystem рдФрд░ тАФpython рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рд╣реИрдВ - рдмрд╛рдж рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╣рдореЗрд╢рд╛ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рд╣рд╛рдВ, рдореЗрд░реЗ рд▓рд┐рдП рднреА рд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред v11.10.0. рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ рдкрд░ рдЙрдмрдВрдЯреВред

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

[packages]
babel = "==2.5.3"
"boto3" = "==1.7.3"
colorama = "==0.3.9"
coreapi = "==2.3.3"
dj-database-url = "==0.5.0"
djangorestframework = "==3.7.7"
django-axes = "==4.0.2"
django-clever-selects = "==0.8.2"
django-crispy-forms = "==1.7.2"
django-choices = "==1.6.0"
django-extra-views = "==0.10.0"
django-filter = "==1.1.0"
django-hijack = "==2.1.7"
django-hijack-admin = "==2.1.7"
django-js-reverse = "==0.8.1"
django-model-utils = "==3.1.1"
django-phonenumber-field = "==2.0.0"
django-polymorphic = "==2.0.2"
django-redis-cache = "==1.7.1"
django-role-permissions = "==2.2.0"
"django-s3direct" = "==1.0.4"
django-static-precompiler = {extras = ["libsass"], version = "==1.8.2"}
django-storages = "==1.6.6"
"django-tables2" = "==1.21.2"
django-webpack-loader = "==0.6.0"
django-widget-tweaks = "==1.4.2"
facebookads = "==2.11.4"
googleads = "==11.0.1"
markdown = "==2.6.11"
phonenumbers = "==8.9.3"
pillow = "==5.1.0"
"psycopg2-binary" = "==2.7.4"
pygments = "==2.2.0"
pyssim = "==0.4"
python-dotenv = "==0.8.2"
pytz = "==2018.4"
raven = "==6.6.0"
sendgrid-django = "==4.2.0"
slacker = "==0.9.65"
termcolor = "==1.1.0"
tqdm = "==4.21.0"
twitter-ads = "==3.0.0"
brotlipy = "==0.7.0"
waitress = "==1.1.0"
whitenoise = "==3.3.1"
Django = "==2.0.4"

[dev-packages]
coverage = "==4.5.1"
selenium = "==3.11.0"
tblib = "==1.3.2"
"flake8" = "==3.5.0"
django-debug-toolbar = "==1.9.1"
django-extensions = "==2.0.6"

[requires]
python_version = "3.6"
Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (7a535c)!
Installing dependencies from Pipfile.lock (7a535c)тАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 92/92 тАФ 00:01:01

real    8m1.993s
user    5m32.406s
sys     7m15.203s

рдпрд╣ рджреВрд╕рд░реА рдпрд╛ рддреАрд╕рд░реА рдмрд╛рд░ рдереЛрдбрд╝рд╛ рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐
рдХреИрд╢рд┐рдВрдЧ рдереЛред рдХреНрдпрд╛ рдЖрдк рд╕реБрдзрд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВ?
рдЧреБрд░реБ, рдЕрдкреНрд░реИрд▓ 12, 2018 рдХреЛ рд╕реБрдмрд╣ 10:23 рдмрдЬреЗ рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХрд╡рдиреБрдШ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рд╣рд╛рдВ, рдореЗрд░реЗ рд▓рд┐рдП рднреА рд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред v11.10.0. рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ рдкрд░ рдЙрдмрдВрдЯреВред

[[рд╕реНрд░реЛрдд]]url = " https://pypi.python.org/simple "verify_ssl = truename = "pypi"
[рдкреИрдХреЗрдЬ] рдмреЗрдмреЗрд▓ = "== 2.5.3" "рдмреЛрдЯреЛ3" = "==1.7.3" рд░рдВрдЧрд╛рдорд╛ = "==0.3.9" рдХреЛрд░рдкреА = "==2.3.3" рдбреАрдЬреЗ-рдбреЗрдЯрд╛рдмреЗрд╕-рдпреВрдЖрд░рдПрд▓ = "== 0.5.0"djangorestframework = "==3.7.7"django-axes = "==4.0.2"django-clever-selects = "==0.8.2"django-crispy-forms = "==1.7.2" django-choices = "==1.6.0"django-extra-views = "==0.10.0"django-filter = "==1.1.0"django-hijack = "==2.17"django-hijack- рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ = "== 2.1.7"django-js-reverse = "==0.8.1"django-model-utils = "==3.1.1"django-phonenumber-field = "==2.0.0"django- рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ = "== 2.0.2"django-redis-cache = "==1.7.1"django-role-permissions = "==2.2.0""django-s3direct" = "==1.0.4"django- рд╕реНрдЯреЗрдЯрд┐рдХ-рдкреНрд░реАрдХрдВрдкреЗрд▓рд░ = {рдЕрддрд┐рд░рд┐рдХреНрдд = ["libsass"], рд╕рдВрд╕реНрдХрд░рдг = "==1.8.2"}django-storages = "==1.6.6""django-tables2" = "==1.21.2"django-webpack -рд▓реЛрдбрд░ = "==0.6.0"django-widget-tweaks = "==1.4.2"facebookads = "==2.11.4"googleads = "==11.0.1"markdown = "==2.6.11" рдлреЛрдирдирдВрдмрд░реНрд╕ = "==8.9.3"рдкрд┐рд▓реЛ = "==5.1.0""psycopg2-рдмрд╛рдЗрдирд░реА" = "==2.7.4"pygments = "==2.2.0"pyssim = "==0.4"рдкрд╛рдпрдерди-рдбреЙрдЯреЗрдирд╡ = "==0.8.2" рдкрд╛рдЗрдЯреНрдЬрд╝ = "==2018.4"рд░реЗрд╡реЗрди = "==6.6.0"sendgrid-django = "==4.2.0"slacker = "==0.9.65"termcolor = "==1.1.0"tqdm = "==4.21.0"рдЯреНрд╡рд┐рдЯрд░-рд╡рд┐рдЬреНрдЮрд╛рдкрди = "==3.0.0"brotlipy = "==0.7.0" рд╡реЗрдЯреНрд░реЗрд╕ = "==1.1.0"whitenoise = "==3.3.1"Django = "==2.0.4"
[рджреЗрд╡-рдкреИрдХреЗрдЬ] рдХрд╡рд░реЗрдЬ = "==4.5.1" рд╕реЗрд▓реЗрдирд┐рдпрдо = "==3.11.0"tblib = "==1.3.2" "рдлреНрд▓реЗрдХ8" = "==3.5.0"django-рдбреАрдмрдЧ-рдЯреВрд▓рдмрд╛рд░ = " ==1.9.1"django-extensions = "==2.0.6"
[рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ]python_version = "3.6"

Pipfile.lock рдирд╣реАрдВ рдорд┐рд▓рд╛, рдмрдирд╛ рд░рд╣рд╛ рд╣реИтАж
рд▓реЙрдХрд┐рдВрдЧ [рджреЗрд╡-рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛тАж
рд▓реЙрдХрд┐рдВрдЧ [рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛тАж
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ Pipfile.lock (7a535c)!
Pipfile.lock (7a535c) рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИтАж
92/92 тАФ 00:01:01

рд╡рд╛рд╕реНрддрд╡рд┐рдХ 8m1.993s
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 5m32.406s
sys 7m15.203s

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pypa/pipenv/issues/356#issuecomment-380882203 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ABhjqwIPyHtX0NTVoV1UPYR7HcwYm-2kks5tn42SgaJpZM4NbeoN
.

рдореИрдВрдиреЗ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрдХреБрд▓ рд╕рдВрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рдерд╛; рдореИрдВрдиреЗ рдЕрднреА рд▓реЙрдХрдлрд╛рдЗрд▓ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдХ рдФрд░ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░реВрдБрдЧрд╛

@jtratner рд╡рд╛рд╣ ред рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк... рдХреИрд╢рд┐рдВрдЧ рдХреЗрд╡рд▓ рддреАрд╕рд░реЗ+ рд╕рдордп рдХреЗ рдмрд╛рдж рдХрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ?

Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (7a535c)!
Installing dependencies from Pipfile.lock (7a535c)тАж
An error occurred while installing coreapi==2.3.3! Will try again.
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 92/92 тАФ 00:00:58
Installing initiallyтАУfailed dependenciesтАж
Success installing coreapi==2.3.3!тЦЙтЦЙтЦЙ 0/1 тАФ 00:00:00
  тШд  тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 1/1 тАФ 00:00:01

real    2m50.218s
user    2m19.438s
sys     5m44.797s
Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (7a535c)!
Installing dependencies from Pipfile.lock (7a535c)тАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 92/92 тАФ 00:00:55

real    2m32.042s
user    2m6.516s
sys     5m10.219s

@kavdev @jtratner рдиреЗ рд╣реИрд╢ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреАрдЪрд░ рднреА рдкреЗрд╢ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдПрдХ рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ

рдореИрдВ рдпрд╣рд╛рдБ рд╣реВрдБ... 15 рдорд┐рдирдЯ рдмрд╛рдж

@giantas рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯрд╛рд▓ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдкрдлрд╛рдЗрд▓, рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдЕрд╡рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд╕рд╛рде рд╣реА рдХреНрдпрд╛ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреИрдХреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реА рдорд╢реАрди рдкрд░ рдЪрд▓рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдореИрдХреЛрдЬрд╝ 10.13.4, рдкрд┐рдкреЗрдирд╡, рд╕рдВрд╕реНрдХрд░рдг 11.10.0

рдбрд╛рдЙрдирд▓реЛрдб рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ Locking [packages] dependenciesтАж рдкрд░ рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рджреЛ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛ рдорд┐рдирдЯ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп 3 рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 6 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЙрд╕ рдкрд░ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓реЙрдХрд┐рдВрдЧ рдЪрд░рдг рдкрд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд▓рдЯрдХрддрд╛ рд╣реИ

pablo<strong i="8">@batman</strong> scanr (develop) $ time pipenv install flask flask_pymongo
Installing flaskтАж
Looking in indexes: https://pypi.python.org/simple
Collecting flask
  Using cached https://files.pythonhosted.org/packages/77/32/e3597cb19ffffe724ad4bf0beca4153419918e7fa4ba6a34b04ee4da3371/Flask-0.12.2-py2.py3-none-any.whl
Collecting Werkzeug>=0.7 (from flask)
  Using cached https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl
Collecting itsdangerous>=0.21 (from flask)
Collecting Jinja2>=2.4 (from flask)
  Using cached https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl
Collecting click>=2.0 (from flask)
  Using cached https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask)
Installing collected packages: Werkzeug, itsdangerous, MarkupSafe, Jinja2, click, flask
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 click-6.7 flask-0.12.2 itsdangerous-0.24

Adding flask to Pipfile's [packages]тАж
Installing flask_pymongoтАж
Looking in indexes: https://pypi.python.org/simple
Collecting flask_pymongo
  Using cached https://files.pythonhosted.org/packages/fa/71/ab920741dedd605ef4adbd57d0c7d9f43a6b6fe4068604fffbc6f64b2c9c/Flask_PyMongo-0.5.1-py3-none-any.whl
Requirement already satisfied: Flask>=0.8 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from flask_pymongo) (0.12.2)
Collecting PyMongo>=2.5 (from flask_pymongo)
  Using cached https://files.pythonhosted.org/packages/5c/7f/1f7240883ec3fa768d7e066c9cbd42ceb42d699ba1a0fb9d231c098a542d/pymongo-3.6.1-cp36-cp36m-macosx_10_6_intel.whl
Requirement already satisfied: click>=2.0 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from Flask>=0.8->flask_pymongo) (6.7)
Requirement already satisfied: itsdangerous>=0.21 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from Flask>=0.8->flask_pymongo) (0.24)
Requirement already satisfied: Werkzeug>=0.7 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from Flask>=0.8->flask_pymongo) (0.14.1)
Requirement already satisfied: Jinja2>=2.4 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from Flask>=0.8->flask_pymongo) (2.10)
Requirement already satisfied: MarkupSafe>=0.23 in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from Jinja2>=2.4->Flask>=0.8->flask_pymongo) (1.0)
Installing collected packages: PyMongo, flask-pymongo
Successfully installed PyMongo-3.6.1 flask-pymongo-0.5.1

Adding flask_pymongo to Pipfile's [packages]тАж
Pipfile.lock (c202d3) out of date, updating to (3068be)тАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (3068be)!
Installing dependencies from Pipfile.lock (3068be)тАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 32/32 тАФ 00:00:03
To activate this project's virtualenv, run the following:
 $ pipenv shell

real    0m37.816s
user    0m34.556s
sys 0m4.517s
pablo<strong i="5">@batman</strong> scanr (develop) $ time pipenv install gunicorn h5py joblib
Installing gunicornтАж
Looking in indexes: https://pypi.python.org/simple
Collecting gunicorn
  Using cached https://files.pythonhosted.org/packages/64/32/becbd4089a4c06f0f9f538a76e9fe0b19a08f010bcb47dcdbfbc640cdf7d/gunicorn-19.7.1-py2.py3-none-any.whl
Installing collected packages: gunicorn
Successfully installed gunicorn-19.7.1

Adding gunicorn to Pipfile's [packages]тАж
Installing h5pyтАж
Looking in indexes: https://pypi.python.org/simple
Collecting h5py
  Using cached https://files.pythonhosted.org/packages/69/d5/dff2a8f7658fd87ab3330a0ab47e4363681d8bdf734a495add65a347f5e3/h5py-2.7.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Requirement already satisfied: six in /Users/pablo/.local/share/virtualenvs/scanr-2m6AW0PB/lib/python3.6/site-packages (from h5py) (1.11.0)
Collecting numpy>=1.7 (from h5py)
  Using cached https://files.pythonhosted.org/packages/a0/df/fa637677800e6702a57ef09e1d62e42aec3f598fb235f897155d146f2f59/numpy-1.14.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy, h5py
Successfully installed h5py-2.7.1 numpy-1.14.2

Adding h5py to Pipfile's [packages]тАж
Installing joblibтАж
Looking in indexes: https://pypi.python.org/simple
Collecting joblib
  Using cached https://files.pythonhosted.org/packages/4f/51/870b2ec270fc29c5d89f85353da420606a9cb39fba4747127e7c7d7eb25d/joblib-0.11-py2.py3-none-any.whl
Installing collected packages: joblib
Successfully installed joblib-0.11

Adding joblib to Pipfile's [packages]тАж
Pipfile.lock (0d514f) out of date, updating to (a4d15f)тАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
Updated Pipfile.lock (a4d15f)!
Installing dependencies from Pipfile.lock (a4d15f)тАж
  ЁЯРН   тЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙтЦЙ 36/36 тАФ 00:00:03
To activate this project's virtualenv, run the following:
 $ pipenv shell

real    6m31.572s
user    1m1.986s
sys 0m11.047s

@pablote рдкрд╡рд┐рддреНрд░ рдмрдХрд╡рд╛рд╕ рдЬреЛ рдзреАрдорд╛ рд╣реИ! рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ numpy рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рд╕реНрд░реЛрдд рд╕реЗ рд▓реЙрдХ рдпрд╛ рдХреБрдЫ рдмреЗрд╡рдХреВрдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдо рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧреА рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдорджрдж рдорд┐рд▓реЗрдЧреА

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдпрд╛ рдореИрдВ рд╕рд┐рд░реНрдл pipenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЗрди рдзреАрдореА рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рд╕рдордп рд╣реЛрдиреЗ рдкрд░ рднрд╛рдЧреНрдп рд╕реЗ рдмрд╛рд╣рд░ рд╣реВрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ --рд╕реНрдХрд┐рдк-рд▓реЙрдХ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд╣рд┐рдП рдереА

@pablote рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрд╕реА рд▓реЙрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдзреАрдорд╛ рд╣реИ?

рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЦрддреНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдХреБрдЫ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИред

рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИрд╢ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╣реИрд╢ рдкреАрдврд╝реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдзреАрдореА рд╣реИ ...

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдореИрдВ рдирд┐рджрд╛рди рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрднреА pip + virtualenv + pip-tools рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдКрдБрдЧрд╛:/

@pablote рдПрдХ рдмрд╛рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╛рд░ рд╣реИрд╢ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд┐рд░ рд╕реЗ рд▓реЙрдХ рдХрд░рдирд╛ рдЗрддрдирд╛ рдзреАрдорд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛

рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧреА рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдкреИрдХреЗрдЬ рд▓реЙрдХ рд╕реНрдЯреЗрдк рдкрд░ рдЕрдорд╛рдиреНрдп рдорд╛рд░реНрдХрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рдЕрдкрдиреЗ рдкрд┐рдкреЗрдирд╡ рдХреЛ 9.1.0 рд╕реЗ 11.10.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, #1622 --- рдЕрдм, рдореЗрд░реЗ рдкрд╛рд╕ ipykernel, рдкрд╛рдВрдбрд╛, рдЬреНрдпреВрдкрд┐рдЯрд░, numpy рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рд╣реИред рдФрд░ рд╡рд╣рд╛рдВ matplotlib рдФрд░ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pipenv install рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдирд╡реАрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рдореИрдВ locking [packages] dependenciesтАж рдореЗрдВ 10 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдмреИрдард╛ рд╣реВрдВред

рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЬреИрд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕реБрдиреНрди рдмрдирд╛рдирд╛) рдпрд╛ рдпрджрд┐ рдпрд╣ рдЕрднреА рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ top рдкрд░ рднреЗрдВрдЧрд╛рдкрди рдХреА рддрд░рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЕрдЬрдЧрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдЯрдХреА рд╣реБрдИ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ ... рдХреБрдЫ рдЬрд▓реНрджреА рдирд╣реАрдВ рдЪрд▓рддрд╛ред

рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧреА рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдкреИрдХреЗрдЬ рд▓реЙрдХ рд╕реНрдЯреЗрдк рдкрд░ рдЕрдорд╛рдиреНрдп рдорд╛рд░реНрдХрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рдЕрдкрдиреЗ рдкрд┐рдкреЗрдирд╡ рдХреЛ 9.1.0 рд╕реЗ 11.10.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, #1622 --- рдЕрдм, рдореЗрд░реЗ рдкрд╛рд╕ ipykernel, рдкрд╛рдВрдбрд╛, рдЬреНрдпреВрдкрд┐рдЯрд░, numpy рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рдЗрдкрдлрд╛рдЗрд▓ рд╣реИред рдФрд░ рд╡рд╣рд╛рдВ matplotlib рдФрд░ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pipenv рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдирд╡реАрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рдореИрдВ 10 рдорд┐рдирдЯ рдХреЗ рдКрдкрд░ рдХреЗ рд▓рд┐рдП [рдкреИрдХреЗрдЬ] рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рдмреИрдард╛ рд╣реВрдВред

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╢рд┐рдХрд╛рдпрдд рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЗ рдкреАрдЫреЗ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реИ)ред рдореИрдВ 15 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рд╣рд╛рд░ рдорд╛рдиреВрдВрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ @techalchemy рдиреЗ рдмрддрд╛рдпрд╛, рд╣рд░ рдмрд╛рд░ рдЖрдкрдХрд╛ рдХреИрд╢ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рдордп рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреАрдкреАрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@jtratner рд╣рд╛рдБ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ PyPi рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП --- рдФрд░ рдореИрдВрдиреЗ рдЕрдВрддрддрдГ рд╣рд╛рд░ рдорд╛рди рд▓реА, рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХреЛ рдЯреНрд░реИрд╢ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛; рдореИрдВрдиреЗ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдПрдХ рд▓реЙрдХрдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ред (рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, matplotlib рд╕рдмрд╕реЗ рдзреАрдорд╛ рдерд╛ --- рд╕реБрдиреНрди рд╕реЗ рднреА рдмрджрддрд░!)

рд╢рд╛рдпрдж This may take a long time рдЬреИрд╕рд╛ рд╕рдВрджреЗрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рддрдм рддрдХ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдкрд░ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ред

15 рдорд┐рдирдЯ рдЕрднреА рднреА рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдмреИрдареВрдВрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░реВрдВрдЧрд╛ред @paultopia рдЖрдк рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП pipenv lock тАФverbose рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╣ рдЬрд┐рддрдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЙрд╕рд╕реЗ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрдо рдХрд░рдХреЗ рдЖрдВрдХ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рдЗрдерди рдкреВрд░реЗ рд╕рдордп рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрднреА рднреА ~ 15% рд╕реЗ рдКрдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╣реИрд╢рд┐рдВрдЧ рдлрд╛рдЗрд▓реЛрдВ рдЬреИрд╕реЗ рд╕реАрдкреАрдпреВ рдЧрд╣рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП . рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╣реИрд╢ рдирд┐рд░реНрднрд░рддрд╛, рдЬреИрд╕реЗ рдпрд╛рд░реНрди, рдФрд░ рд╡реЗ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИрдВред

рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ ...

рдореИрдВрдиреЗ рд▓реЙрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдзреАрдорд╛рддрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдПрдХ рдЬреАрдердм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ https://github.com/AndreasPresthammer/slow-pipenv рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдореБрдЭреЗ 100% рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд░реЗрдкреЛ рдХреЛ рдиреАрдЪреЗ рдЦреАрдВрдЪреЗрдВ рдФрд░ slow.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рдЕрдВрддрд░ рджреЗрдЦреЗрдВред

@AndreasPresthammer рддреЛ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдХ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЕрдирдЫреБрдП рд▓реЙрдХ рдмрдирд╛рдо рд╕рдордп рд╣реИред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд▓реЙрдХрд┐рдВрдЧ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдзреАрдорд╛ рд╣реИред numpy рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЕрддреАрдд рдореЗрдВ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП sdists рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╕рдВрдХрд▓рди рдерд╛ред рд╣рдо рдЕрдм рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЪреАрдЬреЛрдВ рдореЗрдВ рддреЗрдЬреА рдЖ рд╕рдХрддреА рд╣реИ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ (5+ рдорд┐рдирдЯ), рдирд╡реАрдирддрдо рдкрд╛рдпрдерди 3.6, рдкреАрдЖрдИрдкреА, рдФрд░ рдкрд┐рдкреЗрдирд╡ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдФрд░ torch рдЬреИрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП: pipenv lock --verbose рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдзреАрдорд╛ рд╣реИ рдЬреЛ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдмрдирдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдзреАрдорд╛ рд╣реИ, рддреЛ рдХрд╛рд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рдпрд╣рд╛рдВ pipenv lock --verbose рдХрд╛ рд▓реЙрдЧ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ Pipfile рдФрд░ Pipfile.lock :

https://gist.github.com/mimischi/6270b7ece566cc571b427baaf1c331d4

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

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

рд╣рд╛рдп, рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред
рдпрд╣рд╛рдБ рдХреНрд░рд┐рдпрд╛ рд╣реИ

pipenv lock --verbose
Locking [dev-packages] dependenciesтАж
Using pip: -i https://pypi.python.org/simple

                          ROUND 1                           
Current constraints:
  pylint

Finding the best candidates:
  found candidate pylint==1.9.1 (constraint was <any>)

Finding secondary dependencies:
  pylint==1.9.1             requires astroid<2.0,>=1.6, isort>=4.2.5, mccabe, six

New dependencies found in this round:
  adding ['astroid', '<2.0,>=1.6', '[]']
  adding ['isort', '>=4.2.5', '[]']
  adding ['mccabe', '', '[]']
  adding ['six', '', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 1: not stable

                          ROUND 2                           
Current constraints:
  astroid<2.0,>=1.6
  isort>=4.2.5
  mccabe
  pylint
  six

Finding the best candidates:
  found candidate astroid==1.6.4 (constraint was >=1.6,<2.0)
  found candidate isort==4.3.4 (constraint was >=4.2.5)
  found candidate mccabe==0.6.1 (constraint was <any>)
  found candidate pylint==1.9.1 (constraint was <any>)
  found candidate six==1.11.0 (constraint was <any>)

Finding secondary dependencies:
  pylint==1.9.1             requires astroid<2.0,>=1.6, isort>=4.2.5, mccabe, six
  astroid==1.6.4            requires lazy-object-proxy, six, wrapt
  isort==4.3.4              requires -
  mccabe==0.6.1             requires -
  six==1.11.0               requires -

New dependencies found in this round:
  adding ['lazy-object-proxy', '', '[]']
  adding ['wrapt', '', '[]']
Removed dependencies in this round:
Unsafe dependencies in this round:
------------------------------------------------------------
Result of round 2: not stable

                          ROUND 3                           
Current constraints:
  astroid<2.0,>=1.6
  isort>=4.2.5
  lazy-object-proxy
  mccabe
  pylint
  six
  wrapt

Finding the best candidates:
  found candidate astroid==1.6.4 (constraint was >=1.6,<2.0)
  found candidate isort==4.3.4 (constraint was >=4.2.5)
  found candidate lazy-object-proxy==1.3.1 (constraint was <any>)
  found candidate mccabe==0.6.1 (constraint was <any>)
  found candidate pylint==1.9.1 (constraint was <any>)
  found candidate six==1.11.0 (constraint was <any>)
  found candidate wrapt==1.10.11 (constraint was <any>)

Finding secondary dependencies:
  astroid==1.6.4            requires lazy-object-proxy, six, wrapt
  wrapt==1.10.11            requires -
  lazy-object-proxy==1.3.1  requires -
  six==1.11.0               requires -
  pylint==1.9.1             requires astroid<2.0,>=1.6, isort>=4.2.5, mccabe, six
  mccabe==0.6.1             requires -
  isort==4.3.4              requires -
------------------------------------------------------------
Result of round 3: stable, done

Locking [packages] dependenciesтАж

рдпрд╣рд╛рдВ pipenv --version : рдкрд┐рдкреЗрдирд╡, рд╕рдВрд╕реНрдХрд░рдг 2018.05.18

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг/рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдореИрдВ pipenv lock рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдпрд╣ рдХрднреА рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ 2 рдШрдВрдЯреЗ рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЕрднреА рднреА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИред рдФрд░ рдореБрдЭреЗ рджреЛ рдмрд╛рд░ ReadTimeoutError рджрд┐рдпрд╛ рд╣реИ, рдпрд╣ рддреАрд╕рд░реА рдмрд╛рд░ рд╣реИ рдЬрдм рдореИрдВ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдкрд╛рдпрдерди 3.6.4 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЛрдИ рднреА рдорджрдж рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдирд┐рдпрдд рддрд╛рд░реАрдЦ рдХрд░реАрдм рд╣реИред

рд╕рд╛рде рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реЗрдВред рдпрд╣ рд╣рд▓ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ .... рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рднреА 10-20 рдорд┐рдирдЯ рд▓рдЧреЗрдВред рдпрд╣ рд╕реНрдореГрддрд┐ рдХреА рдПрдХ рдкрд╛рдЧрд▓ рд░рд╛рд╢рд┐ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐ рдореБрдЭреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХреЛ рдЖрд╡рдВрдЯрди рдмрдврд╝рд╛рдирд╛ рдкрдбрд╝рд╛ред

рдпрджрд┐ рдЖрдк рд╕рдорд╛рдзрд╛рди рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдкрд┐рдкрдлрд╛рдЗрд▓реНрд╕рдореИрдВрдб рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд╣рдо рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдПрдХ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдХрдЯреМрддреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрдВрдж рдзрд╛рдЧреЗ рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдПрдХ-рдСрдл рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкрд┐рдкрдлрд╛рдЗрд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@jkp рдореБрдЭреЗ рдЖрдкрдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдХрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░ (рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣реИрдВ) рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╡рд╛рдХрд┐рдл рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдЖрдк рдЙрддрдиреЗ рд╣реА рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдкреИрдХреЗрдЬрд┐рдВрдЧ рдореЗрдВ рд╕рдм рдХреБрдЫ рдлрд╛рдбрд╝реЗ рдмрд┐рдирд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдм рдХреБрдЫ рдлреЗрдВрдХ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рд╣рдорд╛рд░реА рдерд╛рд▓реА рдореЗрдВ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рдФрд░ рдЙрди рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдлрд┐рд░, рдореБрдЭреЗ рдЬреЛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдирд┐рд░реНрдгрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдЙрди рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдХрджрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

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

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдВрдж рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╣рдо рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдХреЗрд╡рд▓ рд╢реЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдХреЛрдИ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХреЛрдИ рдХрд╛рдо рди рдХрд░ рд╕рдХреЗред

рдЕрдкрдиреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдареАрдХ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВрдиреЗ mitmproxy рдХреЛ pipenv рдмреАрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдФрд░ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреАред рдореБрдЭреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдорд┐рд▓реАрдВред

  1. рд╣рдо рдПрдХ рдирд┐рдЬреА pypi рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ json-api рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЙрд▓рдмреИрдХ рдХреЛ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЖрджрд┐ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП http рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рдм рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рд╕реБрдЭрд╛рд╡ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝реЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ - рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рджреВрдВрдЧрд╛ рдЬреИрд╕рд╛ рдореБрдЭреЗ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред

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

рдиреНрдпреВрдирддрдо рдкрд░реАрдХреНрд╖рдг-рдорд╛рдорд▓рд╛:

Linux рд╣реЛрд╕реНрдЯ рдкрд░: pipenv install grpcio

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рддреИрдпрд╛рд░ рдХрд┐рдП ( mitmproxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛):

$ mitmdump -w dump.out
Proxy server listening at http://*:8080
127.0.0.1:62303: clientconnect
127.0.0.1:62303: GET https://pypi.org/simple/setuptools/
              << 200 OK 79.82k
127.0.0.1:62305: clientconnect
127.0.0.1:62305: GET https://files.pythonhosted.org/packages/7f/e1/820d941153923aac1d49d7fc37e17b6e73bfbd2904959fffbad77900cf92/setuptools-39.2.0-py2.py3-none-any.whl
              << 200 OK 554.25k
127.0.0.1:62303: GET https://pypi.org/simple/pip/
              << 200 OK 9.56k
127.0.0.1:62303: GET https://pypi.org/simple/wheel/
              << 200 OK 6.91k
127.0.0.1:62303: clientdisconnect
127.0.0.1:62305: clientdisconnect
127.0.0.1:62307: clientconnect
127.0.0.1:62307: GET https://pypi.org/simple/grpcio/
              << 200 OK 112.03k
127.0.0.1:62309: clientconnect
127.0.0.1:62309: GET https://files.pythonhosted.org/packages/1f/ea/664c589ec41b9e9ac6e20cc1fe9016f3913332d0dc5498a5d7771e2835af/grpcio-1.12.1-cp36-cp36m-manylinux1_x86_64.whl
              << 200 OK 8.57m
127.0.0.1:62307: GET https://pypi.org/simple/six/
              << 200 OK 3.34k
127.0.0.1:62309: GET https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
              << 200 OK 10.45k
127.0.0.1:62309: clientdisconnect
127.0.0.1:62307: clientdisconnect
127.0.0.1:62311: clientconnect
127.0.0.1:62311: GET https://pypi.org/simple/grpcio/
              << 200 OK 112.03k
127.0.0.1:62313: clientconnect
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/1f/ea/664c589ec41b9e9ac6e20cc1fe9016f3913332d0dc5498a5d7771e2835af/grpcio-1.12.1-cp36-cp36m-manylinux1_x86_64.whl
              << 200 OK 8.57m
127.0.0.1:62311: GET https://pypi.org/simple/six/
              << 200 OK 3.34k
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
              << 200 OK 10.45k
127.0.0.1:62315: clientconnect
127.0.0.1:62315: GET https://pypi.org/pypi/six/json
              << 200 OK 5.94k
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/16/d8/bc6316cf98419719bd59c91742194c111b6f2e85abac88e496adefaf7afe/six-1.11.0.tar.gz
              << 200 OK 29.16k
127.0.0.1:62315: GET https://pypi.org/pypi/grpcio/json
              << 200 OK 164.26k
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/5c/73/5e65b81301956bdd32c5e8da691fde3fbd6e61283b65d2bac590b8f43765/grpcio-1.12.1-cp27-cp27m-win32.whl
              << 200 OK 1.35m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/e1/c3/bcce8247da4e6f95a900489b6f7ff3d14d93df40d69875fe4164c1b9544a/grpcio-1.12.1-cp27-cp27mu-manylinux1_i686.whl
              << 200 OK 8.01m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/ed/89/03924c56e9044b0842a014fcc0a81f55975028d1caa9cdd14234a230bc70/grpcio-1.12.1-cp27-cp27m-win_amd64.whl
              << 200 OK 1.35m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/d7/f6/ddeab13c25b8451f05875587801ad87e4e0fc23c4e3eb328c4bd1a80a415/grpcio-1.12.1-cp36-cp36m-linux_armv7l.whl
              << 200 OK 7.77m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/2d/a4/4d1d73c0339e987ea173f44cf62ec6b40fb91e0336c09c960c4a44137552/grpcio-1.12.1-cp35-cp35m-linux_armv7l.whl
              << 200 OK 7.76m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/76/27/b03ec8fc96745cde68d6ec29115f9a444945a6acc45209c5772378cc4d66/grpcio-1.12.1-cp35-cp35m-macosx_10_7_intel.whl
              << 200 OK 1.83m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/30/24/8e247548321e52c266a639b51a838ec19b41fb6bfd27e3bbef018496752e/grpcio-1.12.1-cp27-cp27m-manylinux1_x86_64.whl
              << 200 OK 8.47m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/80/c9/e582b962a4a3aa2684666ff67fc994a042b1b0e444eb6672eb9740f7b59a/grpcio-1.12.1-cp34-cp34m-macosx_10_7_intel.whl
              << 200 OK 1.84m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/a2/25/6d910070a4a07c32633c2376075d5dc03e90f69f855d700e3f73c1affebb/grpcio-1.12.1-cp27-cp27m-macosx_10_12_x86_64.whl
              << 200 OK 1.57m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/33/38/58f3e8d133de1f2e911206ead03799621205079c303ae5b27e7350051f4a/grpcio-1.12.1.tar.gz
              << 200 OK 13.56m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/68/57/da122cbfc1b7815381480b23044fff06b90f58c1be9310e68c2d6b1d623c/grpcio-1.12.1-cp36-cp36m-macosx_10_7_intel.whl
              << 200 OK 1.82m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/c6/b8/47468178ba19143e89b2da778eed660b84136c0a877224e79cc3c1c3fd32/grpcio-1.12.1-cp35-cp35m-manylinux1_x86_64.whl
              << 200 OK 8.55m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/5d/8b/104918993129d6c919a16826e6adcfa4a106c791da79fb9655c5b22ad9ff/grpcio-1.12.1-cp36-cp36m-win_amd64.whl
              << 200 OK 1.37m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/94/6c/02e9cb803cd7b9608c9c1768d86d31c61b088f5b9513a203c10fa7e905d8/grpcio-1.12.1-cp36-cp36m-win32.whl
              << 200 OK 1.12m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/2a/ed/71169dccb7f9250d17031068579832371a72891d8e64891265370ca6e264/grpcio-1.12.1-cp27-cp27mu-linux_armv7l.whl
              << 200 OK 7.68m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/63/38/d73bf5b1ef950dbab8203122b9681137b35012492ecfec56719be109e343/grpcio-1.12.1-cp27-cp27m-manylinux1_i686.whl
              << 200 OK 8.01m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/13/71/87628a8edec5bffc86c5443d2cb9a569c3b65c7ff0ad05d5e6ee68042297/grpcio-1.12.1-cp36-cp36m-manylinux1_i686.whl
              << 200 OK 8.11m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/1d/0d/146582f71161a0074dda2378617ae5f7e2c3d6cf62d4588eb586c1d6b675/grpcio-1.12.1-cp27-cp27mu-manylinux1_x86_64.whl
              << 200 OK 8.47m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/9e/3a/6aceb4fccacf6d2d7d087190c221a90f14b2bdcb56cbee5af24b7050278b/grpcio-1.12.1-cp34-cp34m-win_amd64.whl
              << 200 OK 1.35m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/f9/fa/a0187d220544b744dd3bb0d8b8ec716d130159160bf627415b2880ae599a/grpcio-1.12.1-cp34-cp34m-win32.whl
              << 200 OK 1.35m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/dd/aa/ac8e3c6badf1744f04be7d35fa95dae56df12b956f861285c8cced2a22cb/grpcio-1.12.1-cp34-cp34m-linux_armv7l.whl
              << 200 OK 7.76m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/38/2a/94665daafbcf0214adcf77ad8f5aed8b9dfcbfa871115c7890d88b1b8f3c/grpcio-1.12.1-cp34-cp34m-manylinux1_x86_64.whl
              << 200 OK 8.58m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/0d/33/22ad4a9dcefe330180cdb2d24fdd980af2a7a2dc03af208a408fd48195e0/grpcio-1.12.1-cp35-cp35m-win_amd64.whl
              << 200 OK 1.36m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/b5/13/9e8e5d68a15c51b251e512955a971214fd8425b237e6d6a04f0257c5d090/grpcio-1.12.1-cp34-cp34m-manylinux1_i686.whl
              << 200 OK 8.11m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/21/41/66ab386c65be68b4e907f2cd35223965aea2a086bcd0bd6825999e0bda7c/grpcio-1.12.1-cp35-cp35m-win32.whl
              << 200 OK 1.12m
127.0.0.1:62313: GET https://files.pythonhosted.org/packages/f7/db/fc084f59804a32a8d6efb467896a505f4dc93ea89ec44da856b91f05a5cb/grpcio-1.12.1-cp35-cp35m-manylinux1_i686.whl
              << 200 OK 8.09m
127.0.0.1:62313: clientdisconnect
127.0.0.1:62311: clientdisconnect
127.0.0.1:62315: clientdisconnect

рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЧрд┐рдирддреА рдХрд░рдирд╛:

  • 4 рдПрдХреНрд╕ рд╡рд┐рди32
  • 4 рдПрдХреНрд╕ рдЖрд░реНрдо
  • 4 рдПрдХреНрд╕ рдореИрдХреЛрдХреНрд╕

рдЖрджрд┐ рд╣реЛрд╕реНрдЯ рдУрдПрд╕ рдФрд░ рдЖрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рд╕рд░рд▓ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдЬреАрдд рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ?

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

рдЬреЗрдПрд╕рдУрдПрди рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕реАрдзреЗ рд╣рд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╡реНрдпрд╛рдкрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреА рд╣реИ рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдкрдирд╡ рдХреЗ рд░рдирдЯрд╛рдЗрдо рдХреЗ 20-50% рдЬреИрд╕реЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП packaging.version.parse() рдЦрд╛рддреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдХреЙрд▓ред

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдХрдИ рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рд╣реИ рдирд╛?

рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЪрд░реНрдЪрд╛ рдХреЛ #2284 рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЙрдХрд┐рдВрдЧ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬреЛ рдзреАрдорд╛ рд╣реИ ( install рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ TOML рд╣реЗрд░рдлреЗрд░ + lock + sync ), рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реИред

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

@techalchemy рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред packaging.version.parse() рдЦреЛрдЬ рдПрдХ рдЕрдЪреНрдЫреА рд▓реАрдб рд▓рдЧрддреА рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдХрдерди рдкрд░ рдХреБрдЫ рдФрд░ рд░рдВрдЧ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

рдЬреЗрдПрд╕рдУрдПрди рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕реАрдзреЗ рд╣рд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреНрдпреЛрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ?

@jkp JSON API рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕рд░рд▓ рдПрдкреАрдЖрдИ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рд╣рдо рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдкреАрдЖрдИ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ Pyspark рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИред
рдореЗрд░реА рдкрд┐рдкрдлрд╛рдЗрд▓ -

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

[dev-packages]
pylint = "*"
pyspark = "*"

[requires]
python_version = "3.5"

рд╢реЗрд▓ рдЖрдЙрдЯрдкреБрдЯ -

Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдКрдкрд░ рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдкрд░ рдЕрдЯрдХреА рд╣реБрдИ рд╣реИред
15-20 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рд╕рдорд╛рдкреНрдд

рдкрд┐рдкреЗрдирд╡, рд╕рдВрд╕реНрдХрд░рдг 2018.7.1

@keshavkaul PySpark рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдХреБрдЫ рд╕рдордп рджреЗрдВ, рдпрд╣ рдмрд╛рдж рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдкреЗрдирд╡ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ)ред

(рдпрд╛ рдЖрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкрд╣рд┐рдпрд╛ рд╡рд┐рддрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдереЛрдбрд╝реА рдорджрдж рдорд┐рд▓реЗрдЧреАред)

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

рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдЬреИрд╕реЗ apt-get рдпрд╛ wget (рдбрд╛рдЙрдирд▓реЛрдб рдЧрддрд┐, рдЖрдХрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб, рдХреБрд▓ рдЖрдХрд╛рд░) рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рд╣реИ, рдкрд┐рдкреЗрдирд╡ рдореЗрд░реЗ рд▓рд┐рдП рдзреАрдорд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбрд╛рдЙрдирд▓реЛрдб рдерд╛, рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдореЙрдирд┐рдЯрд░ рдЦреЛрд▓рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдкрд┐рдкреЗрдирд╡ рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдХрд┐рддрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХрд┐рд╕ рдЧрддрд┐ рдЖрджрд┐

рд╣рд╡рд╛ рдПрдХ рд╣реА рдореБрджреНрджрд╛: Locking [packages] dependencies... рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓рдЯрдХрд╛
рдореЗрд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг:

  • рдореИрдХреЛрдЬрд╝ рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.6
  • рдкрд╛рдпрдерди: рдкрд╛рдпрдерди 3.6.4
  • рдкрд┐рдкреЗрдирд╡: рд╕рдВрд╕реНрдХрд░рдг 2018.7.1

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

рдореЗрд░рд╛ рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред рдкрд┐рдкреЗрдирд╡ рдмрд╣реБрдд рдзреАрдорд╛ред
рд▓реЙрдХ рдФрд░ рдЗрдВрд╕реНрдЯрд╛рд▓ рд╣реЛрдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрддреНрддрд░ рдпрд╣рд╛рдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/pypa/pipenv/issues/1914#issuecomment -378846926

рдкрд╛рдпрдерди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдФрд░ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреА рд╕реЗрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдмрд╕ рдпрд╣реА рд╣рдХреАрдХрдд рд╣реИ, рдереЛрдбрд╝реА рдзреАрдореА рд╣реИред рдпрджрд┐ рдЖрдк 2 рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯреНрд░реЗрдбрдСрдлрд╝ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ --skip-lock рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рджреНрд╡рд╛рд░рд╛ @techalchemy

рдХреНрдпрд╛ рдкреАрдИрдкреАрдЖрдИ рдПрдкреАрдЖрдИ рд╕реЗ рд╣реИрд╢ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ?

рдкрд┐рдкреЗрдирд╡ рдХрдорд╛рд▓ рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред рдХрд┐рд╕реА рдкреНрд░рдЧрддрд┐ рдХреЛ рджреЗрдЦрдХрд░ рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛрдЧреАред --рд╕реНрдХрд┐рдк-рд▓реЙрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдкрд┐рдкреЗрдирд╡ рдХрдорд╛рд▓ рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред рдХрд┐рд╕реА рдкреНрд░рдЧрддрд┐ рдХреЛ рджреЗрдЦрдХрд░ рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛрдЧреАред --рд╕реНрдХрд┐рдк-рд▓реЙрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЧрд┐рдЯ рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд╡рд░рд╣реЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЖрдВрдХрдбрд╝реЗ рдпрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреАрдПрд╕ рддреЗрдЬ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЧрд┐рдЯ рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдк pipenv 'рдЖрдИрдПрдирдЬреА рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдкреАрдПрд╕ рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

pipenv install pandas --verbose
Installing pandasтАж
таЛ Installing...Installing 'pandas'
$ ['/Users/sinscary/.local/share/virtualenvs/signzy-MSzur11z/bin/pip', 'install', '--verbose', '--upgrade', 'pandas', '-i', 'https://pypi.org/simple']
Adding pandas to Pipfile's [packages]тАж
тЬФ Installation Succeeded
Pipfile.lock not found, creatingтАж
Locking [dev-packages] dependenciesтАж
Locking [packages] dependenciesтАж
таж Locking...

рдпрд╣ рд▓реЙрдХрд┐рдВрдЧ рдкрд░ 30 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдореИрдВ рдЕрдЬрдЧрд░ 3.7.0, рдореИрдХреЛрдЬрд╝ рдореЛрдЬрд╛рд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рдореЗрдВ рдХреЛрдИ рдорджрджред

рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд╕рднреА рдореБрджреНрджреЗ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИрдВ? рд▓реЙрдХ-рд╕реНрдЯреЗрдк рд╣реИрдВрдЧ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рдПрдХ рднреА рдЪреАрдЬрд╝ рдХреЛ рдкрд┐рдкреЗрдирд╡ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк (i7/16Gb) рдкрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдХреЛ 30 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, pipenv install ... рдХрдорд╛рдВрдб рдЙрдореНрд░ рдХреЗ рд▓рд┐рдП рдЪрд▓рддрд╛ рд╣реИ ...

Dockerfile

FROM python:3.7-alpine

# Update package list.
RUN set -ex && apk update

# Install apk dependencies.
RUN set -ex && apk add --no-cache musl-dev gcc libffi-dev openssl-dev make

# Install Pipenv.
RUN set -ex && pip install pipenv --upgrade

# Copy Pipfiles.
RUN mkdir /website
COPY Pipfile /website

# Install Pipenv dependencies.
WORKDIR /website
RUN set -ex && pipenv install --system --skip-lock --verbose

Pipfile

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


[requires]
python_version = "3.7"

[packages]
sanic = "*"
jinja2 = "*"
asyncpg = "*"
uvloop = "*"
munch = "*"

[dev-packages]

[pipenv]
allow_prereleases = true

рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: Alpine Linux рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ

рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрджреНрджрд╛ pipenv рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рд╣реИ...

рдореИрдВрдиреЗ рдЕрд▓реНрдкрд╛рдЗрди рдмреЗрд╕ рдбреЙрдХрд░-рдЗрдореЗрдЬ рдХреЛ рдбреЗрдмрд┐рдпрди-рд╕реНрд▓рд┐рдо рдкрд░ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдЕрдм pipenv install рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рд╣рдореЗрд╢рд╛ рдРрд╕реЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд░реЛрдд рд╕реЗ cython-extension рдпрд╛ c-extensions рд╣реЛ, рдЬреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдбреЗрдмрд┐рдпрди рд▓рд┐рдирдХреНрд╕ рдЙрдиреНрд╣реЗрдВ wheel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ: https://stackoverflow.com/questions/49037742/why-does-it-take-age-to-install-pandas-on-alpine-linux

рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд┐рдкреЗрдирд╡ рд╣реИ рдФрд░ рдЬрдм рднреА рдореБрдЭреЗ "рд╡реЗрдирд╡" рдпрд╛ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдПрдирд╡реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдПрдХ рдЕрдЬреАрдм рдзреАрдореА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде, рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 2 рдореЙрдбреНрдпреВрд▓ рдЬреЛ рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

click

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ 15/20 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛, 60 рдПрдордмреАрдкреАрдПрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдиреАрдЪреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдореИрдХрдмреБрдХ рдкреНрд░реЛ 2019 (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рдореЗрд░реА рдкрд╕рдВрдж рдирд╣реАрдВ) рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рддрдХ

99% рдмрд╛рд░ рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдирд┐рд░реНрднрд░рддрд╛ рдореЗрд░реА рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрд╕реА рдХреЛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реА рджреЗрд╡ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд┐рдЫрд▓реЗ рд░рди рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рдирдпрд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

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

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

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

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

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

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