SSDãæèŒããWindows10ãã·ã³ã§ã 1ã€ã®äŸåé¢ä¿ãå€æŽããåŸã«pipenv install
å®è¡ããã«ã¯ãçŽ5åããããŸãã
ãã®æéã®å€§éšåã¯Locking [packages] dependencies...
å
ã§è²»ããããŸã
ãã®ã¹ãããã§ã¯ã2次åŒãŸãã¯ããã«æªãè€éããããããã«æãããŸããïŒ
以äžã«ã»ãšãã©ã®pipfileãå«ããŸãããããã©ã€ããŒããªããžããªã®äŸåé¢ä¿ã®äžéšãåé€ããå¿ èŠããããŸããã
[[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"
ããã«ã¡ã¯@Diggsey ãããã¯ç§ãã¡ãä»å€æŽãæžããŠããæ¹æ³ã«ãããã®ã§ãã ãããã®å€æŽãããŒãžããæºåãã§ããŠããŸããã projects.py
APIã§å£ããŠããããã次ã®ã¡ãžã£ãŒãªãªãŒã¹ãŸã§å»¶æããŸãã ããŸãããã°ãããã¯æ°é±é以å
ã«æºåãæŽããŸãã ä»ã®ãšããåé¡ã远跡ããããã«ãããéãããŸãŸã«ããŠãããŸãã
ç§ãã¡ã¯PyConã§äžç·ã«ãããã¹ããªã³ãããŸããã ããã«éããªããŸãã
ä»ã®ãšããç§ã«ãšã£ãŠã¯é ãã¯ãªããåãããã§ã...
pipenv install my_package
ãŸãã¯åçŽãªpipenv install
ã¯ã20ååŸã«åºåãæäŸããŸããã
ç·šéïŒç¢ºèªãæ°æéçµã£ãŠããŸã äœããããŸããã åãåé¡ã§ããïŒ éåžžã¯é ãã§ããã5ã10åã§çµäºããŸããã
ãã@NicolasWebDev ãã©ã®ããŒãžã§ã³ã®pipenvã䜿çšããŠããŸããïŒ ãŸããã·ã¹ãã ã«delegator.py
åå¥ã«ã€ã³ã¹ããŒã«ããŠããŸããïŒ ãããããªããããã¯ã©ã®ããŒãžã§ã³ã§ããïŒ ããã¯ãv3.6.0ã§è§£æ±ºãããã¹ãåé¡ã§ããã
äžèšã®ãã¹ãŠãææ°ã®å ŽåãPipfileã®å 容ãæäŸããŠããã ããŸããïŒ ããããšãïŒ
ããã«ã¡ã¯@nateprewitt ãããªãã¯æ£ããã£ããç§ã¯v3.5.xã«ããŸããã 4.1.1ã«ã¢ããããŒããããšãããªãŒãºã®åé¡ã解決ããŸããã ä»ã§ã5åããããŸãããå°ãªããšã䜿ããŸãïŒ
ãã€ãºã§ç³ãèš³ãããŸããããpipãä»ããŠã€ã³ã¹ããŒã«ãããããã±ãŒãžãèªåçã«æŽæ°ãããªãããšãåžžã«å¿ããŠããŸãã
ããããšãïŒ
@NicolasWebDevã§åé¡ã解決ããŠããã£ãã§ãã ç§ãã¡ã¯ãããããã«ã¹ããŒãã¢ããããããã«åãçµãã§ããŸããããŸãããã°ãïŒ373ã¯æ¬¡ã®ãªãªãŒã¹ã§äžæ©è¿ã¥ãã§ãããã
@Diggsey @ NicolasWebDev ã4.1.2ããªãªãŒã¹ããŸãããããã«ã¯ããããã®é床ã®æ¹åãè¿œå ãããŠããã¯ãã§ãã ããã§è¡ãã¹ãäœæ¥ã¯ãŸã ããã€ããããŸãããããã«ãããå°ãªããšãpipenvã®åæããŒãã¹ãã©ããæéãççž®ãããŸãã
@nateprewittæŽæ°ã®ãããã§ãpipenvã¯ä»ã§ã¯éãèŠããŸãããäœãå€æŽãããŠããªãå Žåã§ãã pipenv lock
ãå®è¡ããã ãã§ãæ°åããããŸã-ããã§ãLocking [packages] dependencies...
ã§åºå€§ãªãã®ãåŸ
ã¡ãŸããã®æéã®å€§éšåã
@Diggsey ããã®å€ãã®æéã¯ããã®Pipfileã«èšå€§ãªæ°ã®ãã¡ã€ã«ãããŠã³ããŒãããŠããããã§ãã ãã¹ãŠã®äŸåé¢ä¿ãåºå®ããŠããããã§ãã ããããã¹ãŠããããžã§ã¯ãã«çŽæ¥ã€ã³ããŒãããŠããŸããããããšãä»ã®äŸåé¢ä¿ã®èŠä»¶ããããŸããïŒ
@nateprewittãããã®ããã€ããåé€ããããšã¯ã§ããŸããã倧éšåã¯çŽæ¥ã®äŸåé¢ä¿ã§ã-ããã¯ãã¡ã€ã«ãçæãããã³ã«ãã¹ãŠã®äŸåé¢ä¿ãããŠã³ããŒãããå¿ èŠãããã®ã¯ãªãã§ããïŒ
ã€ã³ã¹ããŒã«ãããã¹ãŠã®ãã®ãäŸåé¢ä¿ãšããŠå€å¥ããå¿ èŠããããŸãã ãããååŸããããã«ãåããã±ãŒãžãããŠã³ããŒãããŠãããã¯æã«ã€ã³ã¹ããŒã«ãã©ã®ããã«è¡šç€ºãããããå€æããŸãã ããã«ãããPipfile.lockå ã®ãã¹ãŠãé©åã«åºå®ã§ããŸãã ããŠã³ããŒãããªããšããµãäŸåé¢ä¿ããã§ãã¯ããŠç¯å²äŸåé¢ä¿ã®å®£èšã解決ããä¿¡é Œã§ããæ¹æ³ã¯ãããŸããã
ã»ãšãã©ã®ããã±ãŒãžãæéã®çµéãšãšãã«åããŸãŸã«ãªããšãããšãããŠã³ããŒãããããã±ãŒãžããã£ãã·ã¥ããããšã¯å¯èœã§ããããïŒ
@Diggseyã¯ç§ãã¡ã®ããã«ããã調ã¹ããã§ããïŒ
ããã¯ã°ããã質åãããããŸããããPipã¯ãã§ã«ããã±ãŒãžãã£ãã·ã³ã°ãè¡ã£ãŠããŸãããïŒ
ç§ã¯ããããŠãããšããå°è±¡ãåããŠããŸãã
pipenvã¯pipãã£ãã·ã¥ã·ã¹ãã ã䜿çšã§ããŸããããããšãæåããå®è£ ããå¿ èŠããããŸããïŒ
Pipenvã¯pipãå®è¡ããã ããªã®ã§ããã£ãã·ã¥ã¯èªåçã«äœ¿çšãããŸãã
ä¿®ç¹ïŒ ããã¯ã¯ä»éãéªæªã§ãã
ãããããããšãã ä»äºã§ã¿ããªãpipenvã«æŒãããã®ã劚ããã®ã¯ããã ãã ã£ããšæããŸãã
ãããŒãããã§ãããããã¯ç§ã«ãšã£ãŠæåéã100å以äžã®ã¹ããŒãã¢ããã§ããããããŠããã¯ãŸãåã®ããŒãžã§ã³ãæãããªãã£ãäŸåé¢ä¿ã®è¡çªãæãããŸããïŒ
ã©ã®ãããªæçšã§ãããããšã¯ããverbose
ã®ããã®ãã©ã°pipenv lock
ç§ã¯ç·šéããããšã«ãããäŸåé¢ä¿ã®ç«¶åã蚺æããããšãã§ããŸãã- piptools/logging.py
ãã°VERBOSEæå¹ã«ããããã«ãç§ã¯ãããäžãããšããããšã§ããããäœãèµ·ãã£ãŠãããã®éåžžã«æ確ãªææšã
ç§ã¯ããããäœããæ¬ ããŠããŸã:)ããã¯ã©ãã§ä¿®æ£ãããŸããïŒ ææ°ãªãªãŒã¹ã¯4æ¥åãªã®ã§ã master
ããææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŸããã ãã ãã pipenv install
ã¯ãŸã é
ãã§ãã
ç§ã¯è©ŠããïŒ
pipenv
ã€ã³ã¹ããŒã«ããŠãã ããâ¡ïžð°â¡ïžpipenv
ãããææ°ããŒãžã§ã³master
ææ°ã®å®å®ããŒãžã§ã³ïŒ5.3.5ãïŒã䜿çšãããšã1ã€ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããã®ã«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
ããŒãžã§ã³ã䜿çšããŠãããã³ã°ããŸãïŒ1ã€ã®ããã±ãŒãžã+ 10åïŒ
ç·šéïŒããã¯ã¡ããã©çµãã£ãïŒ
pipenv install graphene_django 8,03s user 1,28s system 1% cpu 11:23,11 total
äœãæ¡ã¯ïŒ ã©ããããããšãïŒ
ç¹ã«cã³ã³ãã€ã«ãããå ŽåãäŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ã«æéããããããšããããŸãã Pipfile
ãå
±æãããã§ããïŒ
æéããããããšããããšæããŸãããæåããé ãã£ãã§ãã ãããç§ã®åŽã®åé¡ã§ãããã©ããã ãèå³ããããŸãã
ãããç§ã®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
ã¯ç§ã«ãšã£ãŠã¡ããã©1ç§ããããŸããã
$ pipenv install ravenã¯ãç§ã«ãšã£ãŠ1ç§ã®ããã«ããããŸããã
ããã¯ç§ãæåŸ ããããšã§ãïŒ ã©ããããããåé·åºåããªã³ã«ã§ããŸããïŒ
psycopg2
åé€ããããšããŸããããããŸã圱é¿ã¯ãããŸããã pipenv install raven
å®è¡ã¯ãã°ãããã³ã°ããŸãã
ç§ã¯æã£ãŠããïŒ
ã«ã©ã¹ãç¬éçã§ãã£ãŠã¯ãªããªãçç±ã¯ããããŸããã
ãã$ pip install raven
å
éš$ pipenv shell
ãããããããŸãã«ãé
ãããããã©ãæããŠãã ããã
pipenvãå®è¡ããŠããã®ã¯pipãå®è¡ããŠããããšã ããªã®ã§ãããã¯äºå®äžãåé·ã¢ãŒããã§ãã
ããã¯ç¬æã§ãïŒ
â 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ã¯ãããã¯ã¹ããããŸãã¯ã€ã³ã¹ããŒã«ã¹ãããã®é ãéšåã§ããïŒ ææ°ã®ãªãªãŒã¹ã§ã¯ãããã¯ãå€§å¹ ã«æ¹åãããŸããã
`` `ã·ã§ã«
$ time pipenv install raven
ã¬ã€ãŽã³ãã€ã³ã¹ããŒã«ããŠããŸã...
ã¯ã¿ãªã¬ã©ã¹ãéãã
ãã£ãã·ã¥ãããã¬ã€ãŽã³ã®äœ¿çš-6.1.0-py2.py3-none-any.whl
èŠä»¶ã¯ãã§ã«æºããããŠããŸãïŒ/Users/kennethreitz/.local/share/virtualenvs/pipenv-u9yqWeFK/lib/python3.6/site-packagesã®contextlib2ïŒravenããïŒ
åéããããã±ãŒãžã®ã€ã³ã¹ããŒã«ïŒraven
raven-6.1.0ãæ£åžžã«ã€ã³ã¹ããŒã«ãããŸãã
Pipfileã®[ããã±ãŒãž]ã«ã¬ã€ãŽã³ãè¿œå ããŠããŸã...
[dev-packages]ã®äŸåé¢ä¿ãããã¯ããŠããŸã...
[ããã±ãŒãž]ã®äŸåé¢ä¿ãããã¯ããŠããŸã...
Pipfile.lockãæŽæ°ããŸããïŒ
9.30å®æ°5.49ãŠãŒã¶ãŒ0.42sys
ããã¯50:50ã®ãããªãã®ã§ãã€ã³ã¹ããŒã«ïŒããã¯
@ tricoder42ãšããªãã¯ææ°ã®ãã®ã䜿çšããŠããŸããïŒ
æ£ç¢ºãªpipfileã§è€è£œãããŠãã ããã
ãã¶ãããã ïŒ
â 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
`` `ã·ã§ã«
$ time pipenv install
ããã±ãŒãžã¯æäŸãããŠãããããã¹ãŠã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ãããŠããŸãã
Pipfileã¯/ Users / kennethreitz / pipenv / testapp / Pipfileã«ãããŸãã ããããããžã§ã¯ãã®æ¬æ å°ãšèŠãªããŸãã
Pipfile.lockãèŠã€ãããŸãããäœæããŠããŸã...
[dev-packages]ã®äŸåé¢ä¿ãããã¯ããŠããŸã...
[ããã±ãŒãž]ã®äŸåé¢ä¿ãããã¯ããŠããŸã...
Pipfile.lockãæŽæ°ããŸããïŒ
Pipfile.lockããäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŠããŸã...
[================================] 22 / 22-00ïŒ00ïŒ37
58.94å®æ°40.51ãŠãŒã¶ãŒ8.62sys
ç§ãæåã®ããã±ãŒãžãæ°ããæ°ããpipenvã«ã€ã³ã¹ããŒã«ããŠãããšãã§ãããã¯ããŸãã pipenv --three
代ããã«pipenv --python python3.6
pipenv --three
ãäœæããããšããŸã
@ tricoder42ã¯ã1æéã»ã©ã§Googleãã³ã°ã¢ãŠãã«åå ãããã§ããïŒ
ãŸãã¯ãMessages.appã䜿çšããŠããå Žåã¯ãAppleã®ç»é¢å ±æã䜿çšã§ããŸãã
ç§ãè¿œå ããŠãã ããïŒ ç§ã¯[email protected]ã§ãã
äŒè°ã«åå ããããšããŠããŸããããã®åŸå¯Ÿå¿å¯èœã«ãªããŸãã
涌ããïŒ ãã¹ãŠãæåããã¯ãªãŒã³ã¢ããããŠåã€ã³ã¹ããŒã«ããŠã¿ãŸãã ç§ã¯1æéã§å©çšå¯èœã§ã
çŽ æŽãããâããã§ã¯ãããç解ããŸãã messages.appã«ç§ãè¿œå ããŠãã ãã:)
v11.9.0
ã§Locking
åäœãéåžžã«é
ãå Žåã v9.0.0
ããŠã³ã°ã¬ãŒããããšã5å30ç§ã®ã€ã³ã¹ããŒã«ã§1å36ç§ã«ãªããŸãã
@ryantuckå€ãããŒãžã§ã³ãåºå®ããŠ9.0.3
ãåºå®ããå Žåã¯ãå§ãããŸãããé床ã®ã»ãã¥ãªãã£ã倧å¹
ã«äœäžããããã --skip-lock
ã䜿çšããããšããå§ãããŸãããã®ç¹
--skip-lock
ééããªãç©äºãã¹ããŒãã¢ããããŸããã pipenv install --system --python=3.6
ãå®éã«ã¯æ£ããã·ã¹ãã Pythonã«ã€ã³ã¹ããŒã«ãããŠããããã·ã¹ãã ã®ã€ã³ã¹ããŒã«ãè©Šã¿ãåã«Pipfile.lock
ãçæããå¿
èŠããããšæ³å®ããŠããããããã®ãã¹ããã©ããŸããã ããã§ãæ©èœããªãã£ãã®ã§ãéåžžã®å€ãpip
ã«æ»ããŸãããããããã®æ¹éã«æ²¿ã£ãŠé²å±ããã£ãå Žåã¯ããã®ã¹ã¬ããã«ã€ããŠã³ã¡ã³ãããŸãã
âsystem
ãšâpython
ã¯çžäºã«æä»çã§ãâåŸè
ã®ãªãã·ã§ã³ã«ã¯åžžã«virtualenvãå¿
èŠã§ã
ãããç§ãããã¯ã«ã¯æéããããã v11.10.0ã WSLäžã®Ubuntuã
[[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
2åç®ãŸãã¯3åç®ã¯å°ãéããªãã¯ãã§ãã
ãã£ãã·ã³ã°ããŒã æ¹åãèŠãããŸããïŒ
2018幎4æ12æ¥æšææ¥åå10æ23åAlexanderKavanaugh <
[email protected]>ã¯æ¬¡ã®ããã«æžããŠããŸãïŒ
ãããç§ãããã¯ã«ã¯æéããããã v11.10.0ã WSLäžã®Ubuntuã
[[ãœãŒã¹]] url = " https://pypi.python.org/simple " verify_ssl = truename = "pypi"
[ããã±ãŒãž] 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" pyrgments = "== 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 "
[å¿ é ] python_version = "3.6"Pipfile.lockãèŠã€ãããŸãããäœæããŠããŸãâŠ
[dev-packages]ã®äŸåé¢ä¿ãããã¯ããŠããŸãâŠ
[ããã±ãŒãž]ã®äŸåé¢ä¿ãããã¯ããŠããŸãâŠ
Pipfile.lockïŒ7a535cïŒãæŽæ°ããŸããïŒ
Pipfile.lockïŒ7a535cïŒããã®äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«âŠ
ðâââââââââââââââââââââââââââââââââââå®éã®8å1.993ç§
ãŠãŒã¶ãŒ5m32.406s
sys 7m15.203sâ
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/pypa/pipenv/issues/356#issuecomment-380882203 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/ABhjqwIPyHtX0NTVoV1UPYR7HcwYm-2kks5tn42SgaJpZM4NbeoN
ã
ãã®åã«ãã§ã«ããã±ãŒãžãã€ã³ã¹ããŒã«ããŠããŸããã ããã¯ãã¡ã€ã«ãåé€ããŠãã€ã³ã¹ããŒã«ãå床å®è¡ããŸããã å¥ã®ããŒã¿ãã€ã³ããååŸããããã«ããäžåºŠãããŸã
@jtratnerãããŒã éåžžã«èå³æ·±ã... 3åç®ä»¥éã«ã®ã¿ãã£ãã·ã³ã°ãéå§ãããåå ã¯äœã§ããïŒ
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ã¯åœ¹ã«ç«ã¡ãŸããã pipã®ã€ã³ã¹ããŒã«æã«ãpipfileãåºåãããã³æéãæå®ããŠãã ããã ãŸããåå¥ã®ããã±ãŒãžãå®è¡ã§ãããã©ããã
ç§ã®ãã·ã³ã§å®è¡ããã«ã¯ããªãã®æéãããããŸãã macOS 10.13.4ãpipenvãããŒãžã§ã³11.10.0
ããŠã³ããŒãã¯ã»ãŒããã«å®è¡ãããŸããããã®åŸLocking [packages] dependenciesâŠ
ã¹ã¿ãã¯ããŸãã 2ã€ã®äŸåé¢ä¿ã«30åããããããã«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ã䜿çšããŠããããã®é ãããã¯ãã¡ã€ã«æéã䜿çšããã®ã¯éãæªãã§ããïŒ --skip-lockã§ãããšæããŸããããã®æ©èœã欲ããã£ãã®ã§ã
@pabloteåãããã¯æäœãåå®è¡ãããã©ããã確èªã§ããŸããïŒããã§ãé ãã§ããïŒ
åå®è¡ãããšã»ãŒããã«çµäºããã®ã§ãæ°ããäŸåé¢ä¿ãè¿œå ãããã®ã¯åããŠã ãšæããŸãã
ã€ãŸããå®éã«ã¯ããã·ã¥ãããŒã«ã«ã«ãã£ãã·ã¥ããŠããã®ã§ãäœããã®çç±ã§ãããã§ä¿¡ããããªãã»ã©é ãã®ã¯ããã·ã¥çæããã»ã¹ã§ã...
蚺æã«åœ¹ç«ã€æ å ±ãããã°æããŠãã ããã ãšãããããpip + virtualenv + pip-toolsã«æ»ããŸãïŒ/
@pabloteäžåºŠããã·ã¥ã
æçšãªåºåãæäŸããŠãã ããã ããã±ãŒãžããã¯ã¹ãããã§ã®ç¡å¹ãªããŒã«ãŒã®å€±æã解決ããããã«ãpipenvã9.1.0ãã11.10.0ã«ã¢ããã°ã¬ãŒãããŸãããããšãã°ãïŒ1622 ---ããã§ãipykernelãpandasãjupyterãnumpyãããã«matplotlibããããããã¯ãã¡ã€ã«ãå®è¡ããããã«pipenv install
ã䜿çšããæè¿ã®è©Šã¿ã§ãç§ã¯locking [packages] dependenciesâŠ
ã«10å以äžåº§ã£ãŠããŸãã
åºåããªããããå®éã«äœããèµ·ãã£ãŠããã®ãïŒãœãŒã¹ããnumpyãæ§ç¯ãããªã©ïŒããããã¶ãäžãã£ãŠããã ããªã®ãããããŸããã ç§ãã§ããæåã®ããšã¯ã top
ã§ç®ã现ããŠãPythonããã»ã¹ãã¶ãäžãã£ãŠããããã«èŠãããããäœããããŠãããšçµè«ä»ããããšã§ã...ãããããã®virtualenvããŽãç®±ã«æšãŠãŠãæåããããçŽãå¿
èŠããããŸããäœããããã«åããªãã
å¿ èŠã«å¿ããŠãããã«é¢ããäœæ¥ã«è²¢ç®ã§ããããšãããããæããŸãã
æçšãªåºåãæäŸããŠãã ããã ããã±ãŒãžããã¯ã¹ãããã§ã®ç¡å¹ãªããŒã«ãŒã®å€±æã解決ããããã«ãpipenvã9.1.0ãã11.10.0ã«ã¢ããã°ã¬ãŒãããŸãããããšãã°ãïŒ1622 ---ããã§ãipykernelãpandasãjupyterãnumpyãããã«matplotlibããããpipenv installã䜿çšããŠããã¯ãã¡ã€ã«ãå®è¡ããããšããæè¿ã®è©Šã¿ã§ã¯ã[ããã±ãŒãž]ã®äŸåé¢ä¿ãããã¯ãç¶ããŠããŸããâŠ10å以äžã
å®å šã«ç解ã§ããèŠæ ã§ããããŠãŒã¶ãŒã«ãã£ãšåœ¹ç«ã€ãã£ãŒãããã¯ãæäŸããæ¹æ³ãèããããšå¿ã®å¥¥åºã§èããŠããŸããïŒåºåããªãããšã«å°ãæ··ä¹±ããŠããããšã«åæããããïŒã 15ååŸã«ãããããŸãã @techalchemyãææããããã«ããã£ãã·ã¥ã«
1ã€ã®è³ªåïŒãããªãã¯PyPIã䜿çšããŠããŸããïŒ
@jtratnerã¯ããpublic PyPiã䜿çšããŠããŸã---ãããŠç§ã¯çµå±ãããããŠãvirtualenvããŽãç®±ã«æšãŠãæ°ãããã®ãæ§ç¯ããŸããã äŸåé¢ä¿ãäžåºŠã«1ã€ãã€ã€ã³ã¹ããŒã«ããããšã§ãããã¯ãã¡ã€ã«ãæ§ç¯ããããšãã§ããŸããã ïŒèå³æ·±ãããšã«ãmatplotlibã¯æãäœéã§ãã--- numpyãããããã«æªãã§ãïŒïŒ
ããããã This may take a long time
ãããªã¡ãã»ãŒãžã¯ãããæ確ãªè§£æ±ºçã決å®ããããŸã§ã人ã
ãå®å¿ãããã®ã«åœ¹ç«ã€ã§ãããã
15åã¯ãŸã ãã¡ããã¡ãé·ãã§ãç§ã¯åº§ã£ãŠãããåŸ
ã€ãšã¯æããŸããã @paultopia pipenv lock âverbose
ãå®è¡ããŠããå€ãã®åºåãåŸãããšãã§ããŸã
æ¬æ¥ãããé ããšããäžè¬çãªæèŠã¯ãããŸãããç§ã¯ãã®åé¡ãéå°è©äŸ¡ããŠããã®ãããããŸããã ã³ã³ãã¥ãŒã¿ãŒã§å®è¡äžã®ããã»ã¹ãèŠããšãpipenvãå®è¡ãããŠããéãã£ãšPythonãå®è¡ãããŠããããšãããããŸããããã¯ãæ倧15ïŒ ãè¶ ããããšã¯ãããŸããããã¡ã€ã«ã®ããã·ã¥ãªã©ãCPUãéäžçã«äœ¿çšããäœæ¥ãè¡ãå Žåã¯ãããããããå€ãã®ããã»ã¹ã䜿çšããå¿ èŠããããŸãã ã ãŸããyarnã®ããã«äŸåé¢ä¿ãããã·ã¥ããä»ã®ããã±ãŒãžãããŒãžã£ãŒã䜿çšããŸãããããããã¯ããªãé«éã§ãã
ç§ãã¡ã¯ãããäœãããŠããã®ããç解ããå¿ èŠããããŸã...
ããã¯ã䜿çšãããšé床ãäœäžããgithubãããžã§ã¯ããäœæããŸããã https://github.com/AndreasPresthammer/slow-pipenvãã芧ãã ããã ãããããããåãåé¡ã§ãããš100ïŒ ç¢ºä¿¡ããŠããããã§ã¯ãããŸããã ãªããžããªããã«ããŠã³ããŠslow.shã¹ã¯ãªãããå®è¡ããå®è¡æéã®éãã芳å¯ããŸãã
@AndreasPresthammerãªã®ã§ãã¹ã¯ãªããã¯ãã£ãã·ã¥ãããŠããªãããã¯ã®ã¿ã€ãã³ã°ãšããã¯ã䜿çšããã€ã³ã¹ããŒã«ã®ã¿ã€ãã³ã°ã ãã§ãã ãããããã¯ã§ããããšã¯ããã£ãŠããŸãããããã¯é ãã§ãã numpyã®å Žåãããã¯ãããããéå»ã«è§£æ±ºã®ããã«sdistsã䜿çšããå¿ èŠããã£ãããã§ãããããã¯ã³ã³ãã€ã«ãæå³ããŠããŸããã ãã€ãŒã«ã䜿ããããã«ãªããŸããã ããã¯ç©äºãã¹ããŒãã¢ãããããããããŸãã
ããã¯ééããªããŸã åé¡ã§ããïŒ5å以äžïŒãææ°ã®python3.6ãpipãããã³pipenvããŒãžã§ã³ã§ã torch
ãããªåçŽãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã ãã®åé¡ãã¯ããŒãºãšããŠããŒã¯ããã¹ãã§ã¯ãªããšæããŸãã
ãã®åé¡ãã¯ããŒãºãããããšã«ã€ããŠã³ã¡ã³ãããã人ã®ããã«ïŒ pipenv lock --verbose
åºåãæäŸããŠãã ããã ãœãŒã¹ããã³ã³ãã€ã«ãããéåžžã®æ¡ä»¶äžã§ãã«ãããã®ã«é·ãæéããããããã±ãŒãžã®è§£æ±ºã¯é
ãããšãç§ãã¡ã¯ç¥ã£ãŠããŸãã ãããéåžžããé
ãå Žåãåå ãæŽå¯ããããã«ãã°ãå¿
èŠã§ãã
ãŸããéçºç°å¢ãšæ¬çªç°å¢ã«Dockerã䜿çšããŠããŸãããDockerå ã®ã€ã³ã¹ããŒã«ã¯ããã¹ããžã®ã€ã³ã¹ããŒã«ã«æ¯ã¹ãŠé ããšæããŠããŸãã ãã¹ãŠã®ããã±ãŒãžãçµã¿åãããã ããããããŸããããç§ãããçµéšè±å¯ãªæ¹ããã®ãã£ãŒãããã¯ããåŸ ã¡ããŠãããŸãã
Pipfile
ãšPipfile.lock
ãå«ãpipenv lock --verbose
ã®ãã°ã¯æ¬¡ã®ãšããã§ãã
https://gist.github.com/mimischi/6270b7ece566cc571b427baaf1c331d4
@mimischi解決çµæã¯ãã¹ãã«ãã£ãã·ã¥ãããŸãããDockerã¯ãããã«ã¢ã¯ã»ã¹ã§ããŸããã ãã¹ãŠã®è§£å床ãæåããããçŽãå¿ èŠããããããæéãããããŸãã ãã¹ãã®ãã£ãã·ã¥ãã£ã¬ã¯ããªãDockerã«ããŠã³ããããšäŸ¿å©ã§ãã ããŠã³ãããå¿ èŠããããã¹ã«ã€ããŠèšåããŠããåé¡ã«ã³ã¡ã³ãããããŸãã ä»ã¯èª¿ã¹ãæéããããŸããããèŠã€ããŠã¿ãŠãã ããã ïŒãããŠãããªãããããããšãããããããã¥ã¡ã³ãã®FAQããŒãžã«è²¢ç®ããŠãã ããïŒïŒ
FWIWãéçºããã¯ã¹ã®ããã¯ã«ãããæéã¯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
ã§ãïŒpipenvãããŒãžã§ã³2018.05.18
ãŸãããªããããèµ·ãã£ãŠããã®ãããããŸãããç¹å®ã®çç±/ãšã©ãŒã¯çºçããŠããŸããã
ç§ã®å Žåã pipenv lock
ãããšéå§ããŸãããç§ãç¥ãéãçµäºããããšã¯ãããŸããã ç§ã¯2æéåŸ
ã£ãŠããŸãããããŸã å®äºã®å
åã¯ãããŸããã ãããŠã ReadTimeoutErrorã2åäžããŸããããããã¯3åç®ã§ãã
Python3.6.4ã®äœ¿çš
ç§ã®ãããžã§ã¯ãã®ææ¥ãè¿ãã®ã§ãã©ããªå©ãã§ã倧ãã«åœ¹ç«ã€ã§ãããã
ãŸãããã®åé¡ãåéããããã«æ祚ããŠãã ããã 解決ã«ã¯ã»ã©é ãã§ãããããžã§ã¯ããDockerã³ã³ããå ã«ããã¯ããã«ã¯ã10ã20åããããŸãã ãŸããéåžžã«å€ãã®ã¡ã¢ãªã䜿çšãããããDockerãžã®å²ãåœãŠãå¢ãããŠãããã»ã¹ã匷å¶çµäºãããªãããã«ããå¿ èŠããããŸããã
解決é床ã®åé¡ã«ã€ããŠãµããŒããå¿ èŠãªå Žåã¯ãç°å¢ã«é¢ããPipfilesmandã®è©³çŽ°ã®äŸãæäŸããŠãã ããã ä»é±ãªãªãŒã¹ãã«ããããŠãããéããã¹ã¬ããã«é¢ããåå¥ã®ã³ã¡ã³ãã远跡ããæéã¯ãããŸããããæäŸããã°Pipfilesã«å¯ŸããŠãã¹ãã§ããŸãã
@jkpãã®ãããžã§ã¯ãã®ãã¹ãŠã®ã³ã¢éçºè ïŒæåããç§ãã¡ã®å€ããããããã§ã¯ãããŸããïŒã¯ãã®åé¡ãéåžžã«ããç¥ã£ãŠããããã以äžã§ã¯ãªãã«ããŠããããªããšåãããã«åé¡ãæ±ããŠããŸãã ãã ããããã¯æ±ºããŠç°¡åãªåé¡ã§ã¯ãããŸãããPythonããã±ãŒãžã§ãã¹ãŠãç Žæ£ããããšãªããå¯èœãªéã䜿çšã§ããããã«ããããã«ãå¯èœãªéããã¹ãŠãæå ¥ããŸããã çŸåšãç§ãã¡ã®ãã¬ãŒãã«ãå€ãã®ããšãããããããã®ä»ã®åé¡ã«ãããŸãã ã§ããããç§ãããªããã°ãªããªãå¿ ç¶çãªæ±ºæã¯ãç§ãã¡ãå®éã«è§£æ±ºããæ¹æ³ãç¥ã£ãŠããåé¡ã«åªå é äœãä»ããããããå®äºããåŸã«ã®ã¿æ¬¡ã®ã¹ãããã«ã€ããŠèãå§ããç§ãã¡ã®åªåã®å¹æãæ倧åããããšã§ãã
ä»ãç§ã¯ããªãã®åªå é äœãç§ãã¡ã®ãã®ãšã¯ç°ãªããããããªãããšãå®å šã«èªããŸãã ãã®ããã©ãŒãã³ã¹ã®åé¡ã¯ãã¯ãŒã¯ãããŒã§æã倧ããªåé¡ã«ãªãå¯èœæ§ãããããã®ãããžã§ã¯ãã§æãéèŠãªåé¡ãšããŠåãäžããããšèããŠããŸãã ãã ãããã®ããŒã«ã䜿çšããŠããã®ã¯ããªãã ãã§ã¯ãªãããšãèŠããŠãããŠãã ãããç§ãã¡ã¯ãããªãã®åã§ããã¹ãŠã®äººã®å¿ èŠæ§ãããã«ã¯
äœãã§ãããããããªããããåé¡ã¯ã¯ããŒãºããããŸãŸã«ãªããåé¡ãã©ãã«ãŒã§ç®¡çããããšãããšãã€ãºãšããŠã®ã¿æ©èœããŸãã å°ãªããšãç§ãã¡ã®ã¯ãŒã¯ãããŒã§ã¯ã誰ãåãçµãããšãã§ããªãåé¡ãæ±ããããšã¯æå³ããããŸããã
ã¯ãŒã¯ãããŒãè©äŸ¡ããŠããããåé¡ã管çããæ¹æ³ã§ããå Žåã¯åé¡ãããŸããã åé¡ã®è¿œè·¡ã«åœ¹ç«ã€æ å ±ãè¿œå ããããšæããŸãã
pipenv
ãšãããã®éã«mitmproxy
ã€ã³ã¹ããŒã«ããŠãè¡ãããŠããèŠæ±ã远跡ããããšã«ããããããã°ãè¡ããŸããã ç§ã¯ããã€ãã®èå³æ·±ããã®ãèŠã€ããŸããã
json-api
ãŸã ãµããŒãããŠããªããã©ã€ããŒãpypi
ã€ã³ããã¯ã¹ã䜿çšããŠããŸãã ãã©ãŒã«ããã¯ã¯ãã¡ã¿ããŒã¿ãªã©ãæœåºããããã«httpã€ã³ããã¯ã¹ã«ãªã¹ããããŠãããã¹ãŠã®ãã®ããã«ãŒããã©ãŒã¹ããŠããŠã³ããŒãããããšã§ããããã«èŠãããããããã«ããåŠçé床ã倧å¹
ã«äœäžããŸãããããç解ããããã«ä»ã®èª°ããããæ·±ãæãäžããå¿
èŠããªãããããããŸããã
匷åŒãªæ¹æ³ã䜿çšãããšãã³ãŒãã¯äœ¿çšäžã®ã¢ãŒããã¯ãã£ã«é¢ä¿ã®ãªãããã±ãŒãžãããŠã³ããŒãããããã§ãã ããšãã°ãLinuxãã·ã³ã§ã¯ã win32
ãŸãã¯osx
åºæã®ãã€ãŒã«ããã±ãŒãžãããŠã³ããŒãããŠããŸããã ããã¯ãä»ã®ã¢ãŒããã¯ãã£çšã«æ§ç¯ããããã€ããªããã±ãŒãžã圹ã«ç«ããªãããšã¯æããã§ãããããæ€åºããŠåé¿ã§ãããã®ã®ããã«æããŸãã
ç§ã¯ãããèŠã€ãããããããã°ãç¶ããæçšãªæ å ±ãå ±åããŸãã
jsonã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠããå Žåã§ãã pipenv
ã¯ãããŸããŸãªã¢ãŒããã¯ãã£ã«é¢é£ãããã€ãŒã«ãã¡ã€ã«ã«å¯ŸããŠäžèŠãªèŠæ±ãè¡ã£ãŠããããã§ãã å®è£
ã¯ãã¿ãŒã²ãããã©ãããã©ãŒã /ã¢ãŒãã«é¢ä¿ãªããç¹å®ã®ãªãªãŒã¹ã«å¯ŸããŠãªã¹ãããããã¹ãŠã®ãã¡ã€ã«ããã§ãã¯ãããšããç¹ã§ãçŸåšããªãåçŽã§ãã
æå°éã®ãã¹ãã±ãŒã¹ïŒ
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
äžèŠãªãªã¯ãšã¹ãã®ããã€ããæ°ããïŒ
ãªã©ãã¹ãOSãšã¢ãŒãã«åºã¥ããŠããã€ãã®ç°¡åãªãã£ã«ã¿ãªã³ã°ãè¡ãããã®ç°¡åãªåå©ã®ããã«æããŸããïŒ
ãã¹ããšã¢ãŒããã¯ãã£ã«ãã£ãŠãã£ã«ã¿ãªã³ã°ããããã®ãå¿ èŠã§ãããä»ã®ã»ãšãã©ã®å Žåããããã®ãã¹ããšã¢ãŒããã¯ãã£ã«ã€ã³ã¹ããŒã«ã§ããããã·ã¥ãå«ãããã¯ãã¡ã€ã«ãå¿ èŠã§ãïŒpipãªãŸã«ããŒã³ãŒãããŒã¹ã«ã¯ããããå ·äœçã«æå¹ã«ããããã¯ãå€æ°ãããããããã§ã¯ãããŸããïŒç§ãã¡ãžã®ãã¥ãŒã¹ïŒ
JSON APIã«é¢ããŠã¯ãçŸåšã®ãªãªãŒã¹ã§ã¯å®éã«çŽæ¥ãããããããšã¯ã§ããŸããããªãªãŒã¹ããåã«ãã³ãŒãããŒã¹ã§åã³ç¡å¹ã«ããäºå®ã§ãã ç§ã¯åºç¯ãªãããã¡ã€ãªã³ã°ãå®è¡ããŸãããã packaging.version.parse()
ãžã®åŒã³åºãã®å€±æããpipenvã®å®è¡æéã®20ã50ïŒ
ã®ãããªãã®ã§ããããšãç¥ã£ãŠããŸãã
ãã ããPip10ã¯ããã©ã«ãã§JSONAPIãã¡ã€ã³ã®ãªãŸã«ããŒãšããŠäœ¿çšãããããpipã®äœ¿çšãåæ¢ãããå Žåãé€ããŠããã®é¢ã§è¡ãããšã¯ããŸããããŸããã
åããã®ãäœåºŠãããŠã³ããŒãããªããã°ãªããªããããªæ°ãããŸãããïŒ
ããããè°è«ãïŒ2284ã«ç§»ãã¹ãã§ãã é
ãã®ã¯å®éã«ã¯ããã¯éšåã§ããïŒ install
ã¯æ¬è³ªçã«TOMLæäœ+ lock
+ sync
ïŒãã€ã³ã¹ããŒã«ãããŠããŸããã
ã·ã³ã°ã«ã¢ãŒããžã®ããã¯ããŠã³ã«ã€ããŠã ãã¶ã€ã³ã®éžæãç解ããŠããŸãã ããããããŠãŒã¶ãŒããã¹ãã¢ãŒããã¯ãã£ã«å¯ŸããŠã®ã¿ããã¯ã§ããããã«ãã©ã°ãæž¡ããªãã·ã§ã³ãããã®ã§ããããã ããã¯ãæéãšäžéšã®ãŠãŒã¹ã±ãŒã¹ã®åž¯åå¹ ã®äž¡æ¹ã®èŠ³ç¹ãããããªãéèŠãªæé©åã«ãªããŸãã
@techalchemyãåçããããšãpackaging.version.parse()
æ€çŽ¢ã¯è¯ããªãŒãã®ããã§ãã ãã®å£°æã«ããå°ãè²ãä»ããŠããã ããŸãããã
JSON APIã«é¢ããŠã¯ãçŸåšã®ãªãªãŒã¹ã§ã¯å®éã«çŽæ¥ãããããããšã¯ã§ããŸããããªãªãŒã¹ããåã«ãã³ãŒãããŒã¹ã§åã³ç¡å¹ã«ããäºå®ã§ãã
ãªãç¡å¹ã«ããäºå®ãªã®ãããããŸããã§ãããïŒ
@jkp JSON APIã«é¢ããŠã¯ããããã·ã³ãã«ãªAPIã®æ¹ãã¯ããã«é©ããŠããŸãã ãããç¡å¹ã«ããããšã§ãAPIããŸã£ãã䜿çšããã«ãåçŽãªAPIã䜿çšããŠããŸãã
Pysparkãã€ã³ã¹ããŒã«ããã®ã«æéãããããããŸãã
ç§ã®Pipfile-
[[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ååŸã«çµäºããŸã
pipenvãããŒãžã§ã³2018.7.1
@keshavkaul PySparkã¯éåžžã«å€§ãããããŠã³ããŒãããã ãã§ãããªãã®æéããããå ŽåããããŸãã ãã°ãããåŸ ã¡ãã ãããåŸã§ã¯ããã«è¯ããªããŸãïŒPipenvãçµæããã£ãã·ã¥ããããïŒã
ïŒãŸãã¯ãéçºè ã«ãã€ãŒã«ãã£ã¹ããªãã¥ãŒã·ã§ã³ããªãªãŒã¹ããããã«ä¿ãããšãã§ããŸããããã¯å°ã圹ã«ç«ã¡ãŸããïŒ
ä»åŸã®èšªåè ãžã®æ³šæïŒé ãã€ã³ã¹ããŒã«çµæãæçš¿ããªãã§ãã ããã é ããªãå¯èœæ§ãããããšã¯ããã£ãŠããŸãã ãªãé ãã®ãã¯ããã£ãŠããŸãã çµæã¯ãã®ãããã¯ã«äœãè¿œå ããŸããã
ã©ã€ãã©ãªã®ããŠã³ããŒãäžã«ãapt-getãwgetïŒããŠã³ããŒãé床ãããŠã³ããŒãããããµã€ãºãåèšãµã€ãºïŒãªã©ã®æ
å ±ãããã°ã¬ã¹ããŒã衚瀺ããããšã¯ã§ããŸããïŒ
ãããããã§ã®åé¡ã ãšæããŸããpipenvã¯ç§ã«ã¯é
ãããã«èŠããŸããããã©ã€ãã©ãªã®ããŠã³ããŒãã ãã§ãããpipenvããã¡ã€ã«ãããŠã³ããŒãããŠããŠããã§ã«ããŠã³ããŒããããŠããéãé床ãªã©ãç解ããããã«ãã·ã¹ãã ã¢ãã¿ãŒãéãå¿
èŠããããŸããã
havaåãåé¡ïŒ Locking [packages] dependencies...
ã¯æ°žé ã«ãã³ã°ããŸã
ç§ã®ç°å¢ïŒ
@crifanãªãŒãã³ãŸãã¯ã¯ããŒãºããããã¹ãŠã®åé¡ã«ã€ããŠãããã¯é床ã«ã€ããŠèšåããåãã¡ãã»ãŒãžãæçš¿ããå¿ èŠã¯ãããŸããã åãããšãäœåºŠèšã£ãŠãã³ã¡ã³ãã衚瀺ãããŸãã 圹ç«ã€ããã«ãããå Žåã¯ãåçŸå¯èœãªãµã³ãã«ã±ãŒã¹ãæäŸããå¿ èŠããããŸãã ãç§ãããšèšã£ãŠãã£ã€ã ã鳎ãããŠãã課é¡è¿œè·¡ã·ã¹ãã ã«ãã©ãã£ãã¯ãå¢ãã以å€ã«äœãè¿œå ãããŸããã æ°ãã€ããŠãã ããã
ãã£ã¡ãäžç·ã Pipenvã¯éåžžã«é
ãã
ããã¯ããŠã€ã³ã¹ããŒã«ããã®ã«1æéããããŸãã
ãã®åé¡ã¯ããã§ããŸãåçãããŠãããšæããŸãïŒ https ïŒ
Pythonã®äŸåé¢ä¿ã§ã¯ã解決ããŠèšç®ããããã«ãåããã±ãŒãžã®ã»ããã¢ãããã¡ã€ã«ãå®å šã«ããŠã³ããŒãããŠå®è¡ããå¿ èŠããããŸãã ããã¯ãã ã®çŸå®ã§ããããã¯å°ãé ãã§ãã 2ååŸ ã€ããšãã§ããªãå ŽåããŸãã¯ãã¬ãŒããªãã®äŸ¡å€ããªããšæããå Žåã¯ããã€ã§ã
--skip-lock
æž¡ãããšãã§ããŸãã
ããã·ã¥ãèªåã§èšç®ããã®ã§ã¯ãªããPyPI APIããããã·ã¥ã®ãªã¹ããååŸããããšã¯å¯èœã§ããããïŒ
pipenvã¯çŽ æŽãããã§ããããã®åé¡ã¯ãŸã ååšããŠããããã§ãã é²æ©ãèŠãŠåãã§ããã§ãããã --skip-lockãæ©èœããŸããã§ããã
pipenvã¯çŽ æŽãããã§ããããã®åé¡ã¯ãŸã ååšããŠããããã§ãã é²æ©ãèŠãŠåãã§ããã§ãããã --skip-lockãæ©èœããŸããã§ããã
ç§ã®ããã«åãã
Windowsã§GitBashã䜿çšãããšãPowershellã«æ¯ã¹ãŠéåžžã«é
ãããšãããããŸããã ããã«é¢ããçµ±èšãããŒã¿ã¯ãããŸããããPSã®æ¹ãéãããã§ãã ãããã£ãŠãGit Bashã䜿çšããŠããå Žåã¯ããã€ãã£ãPSãpipenv
'ingã§è©ŠããŠã¿ãŠãã ããã
ãã®åé¡ã¯è§£æ±ºæžã¿ã§ããããã³ãã®ã€ã³ã¹ããŒã«ã«ã¯æéãããããŸãã 詳现ãªåºåã¯ããã§ã
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å以äžããã¯ã§ç«ã¡åŸçããŠããŸãã ç§ã¯python3.7.0ãmacosmojaveã䜿çšããŠããŸãã ããã«é¢ããå©ãã
ãã®ãããã¯ã®ãã¹ãŠã®åé¡ã解決ãããã®ã¯ãªãã§ããïŒ ããã¯ã¹ãããããã³ã°ããŠãããããpipenvã§1ã€ã®ãã®ãã€ã³ã¹ããŒã«ã§ããŸããã
次ã®Dockerã€ã¡ãŒãžã¯ãç§ã®ã©ãããããïŒ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
åŽã§ã¯ãªãããšã«æ°ã¥ããŸãã...
AlpineããŒã¹ã®docker-imageãDebian-Slimã§æ§ç¯ããããã®ã«çœ®ãæãããšããã pipenv install
ãæ°ç§ã§çµäºããŸããã
ç§ã®äŸã®åé¡ã¯ãAlpine Linuxãåžžã«ãœãŒã¹ããcython-extension
ãŸãã¯c-extensions
ãå«ãããã±ãŒãžããã«ãããããšããããšã§ããããã¯ãDockerã³ã³ããã§æ°žä¹
ã«ãããå¯èœæ§ããããŸãããDebianLinuxã¯wheel
ã䜿çšããŠããããã€ã³ã¹ããŒã«ããŸãã
è©³çŽ°ïŒ https ïŒ
ç§ã¯é·ãépipenvãé¢ããŠããããvenvããŸãã¯ä»ã®ãªãã·ã§ã³ã䜿çšããŠä»®æ³ç°å¢ãäœæããå¿ èŠããããšãã¯ãã€ã§ãã
å¥åŠãªé床ã®åé¡ããããŸããç§ãè¡ã£ãŠããã¹ã¯ãªããã®ã¢ãžã¥ãŒã«ã¯2ã€ã ãã§ãã
click
ã€ã³ã¹ããŒã«ã«15/20åãããã60Mbps以äžã§ã€ã³ã¿ãŒããããã¹ããè¡ããææ°ã®MacBook Pro 2019ã§å®è¡ããŸããïŒããŒããŠã§ã¢ã®éžæã§ã¯ãããŸããïŒã
ãšããããvirtualenvã䜿ã£ãŠãã ããã ããè¯ã解決çãå©çšå¯èœã«ãªããŸã§
ãããè¡ãæéã®99ïŒ ã§ãäŸåé¢ä¿ã¯ããã¯ãã¡ã€ã«å ã®åããã®ã«è§£æ±ºãããŸããããã¯ããããéçºãã€ãã©ã€ã³ã®äžéšã§ããããã§ãã
ååã®å®è¡ä»¥éã«æ°ããã¢ããã¹ããªãŒã ããã±ãŒãžããªãå Žåã確ãã«ããã»ã¹ãã¹ãããã§ããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
ãã®ãããã¯ã®ãã¹ãŠã®åé¡ã解決ãããã®ã¯ãªãã§ããïŒ ããã¯ã¹ãããããã³ã°ããŠãããããpipenvã§1ã€ã®ãã®ãã€ã³ã¹ããŒã«ã§ããŸããã