pipenvã䜿çšããŠPythonãããžã§ã¯ããã»ããã¢ããããŸããã ç§ãç¥ãããããšã®1ã€ã¯ãpipenvããããžã§ã¯ããã£ã¬ã¯ããªã®virtualenvsãžã®ãããã³ã°ãã©ãã«ä¿åããããšããããšã§ãã
æ確ã«ããããã«ãç§ã¯æ¬¡ã®ã³ãã³ããå®è¡ããŠããŸãã
sacjain-macOS:coursera-classification sacjain$ pipenv --venv
/Users/sachinjain/.local/share/virtualenvs/coursera-classification-iTBt6WsT
PipfileãšPipfile.lockã確èªããŸããããã®æ å ±ã¯ãPipfileã«ååšããã¯ãã§ãããååšããŠããŸããã§ããã
Q2ã pipenvã䜿çšããŠç¹å®ã®ããŒãžã§ã³ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããã«ã¯ã©ãããã°ããã§ããïŒ
virtualenvã®ååã¯ããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªåã«ããããžã§ã¯ãã«ãŒããžã®ãã«ãã¹ã®ããã·ã¥ãå ãããã®ã§ãã ããã«ããããããžã§ã¯ãã移åããªãéããååãäžæã§äºæž¬å¯èœã§ããããšãä¿èšŒãããŸãã ïŒAFAICTãã®ååçæããžãã¯ã¯ãä¿¡é Œã§ããªãå®è£ ã®è©³çŽ°ã§ããïŒ
ããã±ãŒãžã®ç¹å®ã®ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããã«ã¯ãpipããã³requirements.txtã®å Žåãšåãæ§æã䜿çšããŸãïŒäŸïŒ pipenv install django==1.11.0
ã
@uranusjrããã¯ããã£ã¬ã¯ããªã®ååãå€æŽãããšããããžã§ã¯ãã®virtualenvã倱ãããããšãæå³ããŸãã ããã¯è¯ããªããã ãã£ã¬ã¯ããªã®ååãå€æŽããããšã¯äžè¬çãªäœ¿çšäŸã§ããããŠãŒã¶ãŒã¯ããã«é¥ããç°å¢ãã©ã®ããã«æ©èœããªããªã£ãã®ãçåã«æããããããŸããã
å¯èœã§ããã°ããããä¿®æ£ããŠPipfileã«ãšã³ããªãäœæããããšããå§ãããŸãã ãŸãã¯ãå¥ã®.pipenvãã¡ã€ã«ãäœæããŠããã®ãããªã¡ã¿ããŒã¿ãåãããžã§ã¯ããã£ã¬ã¯ããªã«ä¿åããŸãã
äœãæ瀺ããŠããã§ãã ïŒ
äž¡æ¹ã®è³ªåã«çããŠãããŠããããšãïŒ
ãã@ sachinjain024 ãããŒã«ã«ã¡ã¿ããŒã¿ãã¡ã€ã«ã«ã€ããŠããã€ãè°è«ããŸããããã¡ã³ããã®ã³ã³ã»ã³ãµã¹ã¯ãpipenvãçŸæç¹ã§ã¯ããããµããŒãããªããšãããã®ã§ããã
ãããžã§ã¯ããèå¥ãããã£ã¬ã¯ããªãã¹ã¯ãåãååã®ãããžã§ã¯ãããŸãã¯åããããžã§ã¯ãã®è€æ°ã®ã³ããŒãç°å¢ç¶æ ã®èª€ã£ãäžæžããåŒãèµ·ãããŠãããããåæã«å®è£ ããããã®ã§ããã
å®éã«ã¯ãå Žæãç°å¢ã®äžéšã§ããããšã«åé¡ãæ±ããŠãã人ã¯ãé»ã£ãŠäœæ¥ãäžæžããããããã¯ããã«å°ãªãããšãããããŸããã Pipenvã¯çµå±ã®ãšãããããã€ã¡ã³ã管çããŒã«ã§ããããããã£ã¬ã¯ããªã®ç§»åã¯1ã€ã®ã³ãã³ãä¿®æ£ã§ããå¿ èŠããããŸãã
@nateprewittã«æè¬ããŸãã ç°¡åãªå®è£ ã«ãã°ãããžã£ã³ãããã®ã¯çã«ããªã£ãŠããŸãã åŸã§ãããžã§ã¯ãã®ååãå€æŽãããšãç°å¢ãååšããªãããšãæå³ããŸãã
ã§ã¯ããã®ç¶æ³ã§ç§ã¯äœããã¹ãã§ããããïŒ
ãã®å Žåãããªãã¯äœãææ¡ããŸããïŒ å°æ¥ãã®ãããªç¶æ³ã«ãªã£ãå Žåã«åããŠãèå³ããããŸãã
pew cp
ã䜿çšããŠãæ¢åã®virtualenvãç°¡åã«ã³ããŒã§ããŸããã1ãã¯ããããæšæºçãªãæ¹æ³ã ãšæããŸãã
@ sachinjain024 ããããžã§ã¯ããã£ã¬ã¯ããªã移åããå¿
èŠããããšãã¯ãã€ã§ãã pipenv install
ãå®è¡ããã ãã§äœæ¥ç¶æ
ã«æ»ãããšãã§ããŸãã ããã«ãããæ°ããããã·ã¥ã䜿çšããŠç°å¢ãäœæãããããã¯ãã¡ã€ã«ãã以åã«äœæãããã€ã³ã¹ããŒã«ãšåãããã«ãã¹ãŠãåã€ã³ã¹ããŒã«ãããŸãã
ãããé »ç¹ã«è¡ãå Žåã¯ã pew rm old_project-a3de90
ã䜿çšããŠã¯ãªãŒã³ã¢ããããããšããå§ãããŸãã
pipenvã®å€éšã§ä»®æ³ç°å¢ãå€æŽããå Žåãé€ããŠã pew cp
䜿çšã¯ãå§ãããŸããã ãã®å Žåã確å®ã«èª¬æã§ããªãããããçš®é¡ã®å€æŽãããããããä¿èšŒã®ç¡å¹åãã·ããªãªãèæ
®ããå¿
èŠããããšæããŸãã
@ nateprewitt @
ããã¯ããããŸã§ã®ãšããpipenv
ããåºãŠããææªã®ã¢ã€ãã¢ã®1ã€ã§ãã çç±ã¯æ¬¡ã®ãšããã§ãã
ç§ã¯ãPythonãå€ãã®å
éšãããžã§ã¯ãã®ãã¹ãèªååã«äœ¿çšãããŠããäŒç€Ÿã§åããŠããŸãã éåžžã1人ã®ãã¹ã¿ãŒããããã®12åãåŠçããŸãã æ
£äŸã«ããããããžã§ã¯ãã®ãã¹ãŠã®ãã¹ãã³ãŒãã¯tests
ãšãããã£ã¬ã¯ããªã«ãããŸãã ã€ãŸããåãã¹ã¿ãŒã«ââã¯ã ~/.local/share/virtualenvs/tests-hKjFddnZ
ãããªãã®ãšåŒã°ããäžé£ã®ä»®æ³ç°å¢ããããŸãã ä»®æ³ç°å¢ã®åãæ¿ããå¿ããã®ã¯äººéã®æ§è³ªã§ãããããæ°æ¥ããšã«å¥ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã«åŒã³åºãããŸãããã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®æ
åœè
ã¯ãå¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ãããšèããŠã pipenv install
ããã ããã³ãŒãã®ã€ã³ããŒãã¯æ©èœããŸããã ããã ãã§ãªããå€ç«ããä»®æ³ç°å¢ã¯æéã®çµéãšãšãã«èç©ãããŸããããããã¯ãã¹ãŠãããã«ããååãæã£ãŠããããã䜿çšãããŠããªãç°å¢ãåé€ããã®ããå®éã«äœ¿çšãããŠããç°å¢ãåé€ããã®ããå€æããæ¹æ³ã¯ãããŸããã ã€ãŸããCIã§ã¯ãæ¯æ¥æ°çŸãšã¯èšããªããŸã§ãæ°åã®ä»®æ³ç°å¢ãäœæããŸãã æ¬è³ªçã«ã©ã³ãã ãªååãæã€ç°å¢ã誰ãã远跡ã§ããæ¹æ³ã¯ãããŸããããŸããååãå€ããããããå°ãªããšã1æ¥ã«1åã¯ãã¹ãŠãåé€ããå¿
èŠããããŸãã pipenv
ãšããã䜿çšããããšã決å®ããåœç€Ÿã®èª°ãã«ãã£ãŠè¡ããããã®éåžžã«è³¢æãªæ±ºå®ã®ããã«ã®ã¿ãåŸ
ã¡æéã«è«å€§ãªæéãæ¯æããŸã...
bashrc / shellæ§æã§export PIPENV_VENV_IN_PROJECT=1
ãèšå®ããŸãã
ïŒãŸãã¯ãã·ã§ã«ã¹ã¯ãªãããå€æŽããŠã$ PROJECT /.venvã«venvãäœæããŠãã
pipenvã«ã¯ããããããŸãïŒ
6:28ã§æã2018幎3æ19æ¥ã«ã¯wvxvw [email protected]æžããŸããïŒ
ããã¯ããããŸã§ã®ãšãããpipenvããåºãŠããææªã®ã¢ã€ãã¢ã®1ã€ã§ãã çç±ã¯æ¬¡ã®ãšããã§ãã
ç§ã¯Pythonãå€ãã®ãã¹ãèªååã«äœ¿çšãããŠããäŒç€Ÿã§åããŠããŸã
å éšãããžã§ã¯ãã éåžžã1人ã®ãã¹ã¿ãŒããããã®12åãåŠçããŸãã 沿ã£ãŠ
æ £äŸã§ã¯ããããžã§ã¯ãã®ãã¹ãŠã®ãã¹ãã³ãŒãã¯testsãšåŒã°ãããã£ã¬ã¯ããªã«ãããŸãã
ããã¯ãåãã¹ã¿ãŒããã¹ãŠã®ä»®æ³ç°å¢ãæã£ãŠããããšãæå³ããŸã
ã/ .local / share / virtualenvs / tests-hKjFddnZã®ãããªãã®ãšåŒã°ããŸã-
é©ãã°ããïŒ ä»®æ³ç°å¢ã®åãæ¿ããå¿ããã®ã¯äººéã®æ¬æ§ãªã®ã§ã
æ°æ¥ããã«å¥ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã«åŒã°ããã®ã¯ãã®äººã
ãã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ã§ãå¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ãããšèããŸãã
pipenv installãå®è¡ããŸããããã³ãŒãã®ã€ã³ããŒããæ©èœããŸããã ã ãã§ãªã
ã€ãŸããå€ç«ããä»®æ³ç°å¢ã¯æéã®çµéãšãšãã«èç©ãããŸããã
ãããã®äžã«ã¯ãããã«ããååãä»ããŠããã®ã§ãåé€ããŠãããã©ãããå€æããæ¹æ³ã¯ãããŸãã
䜿çšãããŠããªãç°å¢ããŸãã¯å®éã«äœ¿çšãããŠããç°å¢ã ãã®
ã€ãŸããCIã§ã¯ãæ°çŸã§ã¯ãªãã«ããŠãæ°åã®ä»®æ³ç°å¢ãäœæããŸã
æ¯æ¥ã 誰ããæã£ãŠããç°å¢ã远跡ã§ããæ¹æ³ã¯ãããŸãã
æ¬è³ªçã«ã©ã³ãã ãªååã§ããããããã®æ°ãå€ãããããã
å°ãªããšã1æ¥ã«1åã¯ãã¹ãŠåé€ããŠãã ããã åŸ ã¡æéã«å€é¡ã®è²»çšãæ¯æã
pipenvãšèª°ãã«ãã£ãŠãªããããã®éåžžã«è³¢ã決å®ã®ããã ãã«
ããã䜿ãããšã«ããç§ãã¡ã®äŒç€Ÿ...â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/pypa/pipenv/issues/796#issuecomment-374211264 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/ABhjqyABdDHCB8WMm-hJwdkNptVlh8fuks5tf7KBgaJpZM4Pp3kf
ã
@jtratnerã§ã¯ãä»®æ³ç°å¢ãæåã§äœæããå Žåããªãpipenv
ãå¿
èŠãªã®ã§ããïŒ
ä»®æ³ç°å¢ã¯ããèªäœãäœæ¥ã®äžéšã§ãã ããã¯ã©ãã§ãäžå®å šã§ãããWindowsã§ã¯å£ããŠããŸãïŒMS Windowsã§ã¯ããã¹ãŠã®å Žæã§ãããã©ã«ãã®ããŒã ãã£ã¬ã¯ããªã¯ããããšåŒã°ããŠãããšæ³å®ããŠããŸãïŒã 誰ããPIPãšä»®æ³ç°å¢ãããçŽããå Žåãåä»»è ã®æãããªãšã©ãŒãä¿®æ£ããŠãããããšãæåŸ ããŠããŸãã...代ããã«ããã®æ··ä¹±ã«éäºææ§ã®å±€ãå ãã£ãŠããŸãã
ããªãã¯ééã£ãä»®å®ãããŠããŸãã Pipenvã¯virtualenvãpipãããçŽããŸããã ããã¯ãããã®äžã«æ§ç¯ãããŸãã
@uranusjrã¯èªè§£ã®åé¡ã§ãã ç§ã¯pipenv
ãäœãããã®ããããç¥ã£ãŠããŸãããªããªããç§ã¯èªåãæããããã¯ããã«å€ãã®æéãã³ãŒãã®ãããã°ã«è²»ãããŠããããã§ãã ä»®æ³ç°å¢ãšPIPãããçŽãããšãããããžã§ã¯ãã®ç®æšã§ãã ããã¯ãããããä¿®æ£ãã代ããã«ãããããããã®ãŸãŸã䜿çšããããšã決å®ããããšã¯ã pipenv
å¥ã®å€§ããªééãã§ãããç¶ããŠclick
ã©ã€ãã©ãªã䜿çšãããªã¹ãã¯ç¶ããŸãã
ä»®æ³ç°å¢ãšPIPãããçŽãããšãããããžã§ã¯ãã®ç®æšã§ãã
誰ãããããã©ãã«è¿°ã¹ãŸãããïŒ
ãŸãããã®åäœã¯å¥åŠã§ããããšãããããŸããã pipenv
ãvirtualenvãã£ã¬ã¯ããªã®æšæºåãéžæãããã£ã¬ã¯ããªãçŸåšã®ãã£ã¬ã¯ããªã«é
眮ããããšãæåŸ
ããŠããŸãããããã¯ã npm
ãnode_modules
䜿çšããæ¹æ³ãšäŒŒãŠããŸãã
@Flimm export PIPENV_VENV_IN_PROJECT=1
ã ããã¥ã¡ã³ããèªãã§ãã ããã
@uranusjr https://docs.pipenv.orgãšhttps://docs.pipenv.org/basics/ããã¹ãŠèªã¿ãŸããããèŠéããªãéãã virtualenv
ãã£ã¬ã¯ããªãã€ã³ã¹ããŒã«ãããŠããå Žæã«ã€ããŠã¯èšåãããŠããŸããããŸãããããžã§ã¯ããã£ã¬ã¯ããªã®ååãå€æŽããã移åããããããšã virtualenv
ãã£ã¬ã¯ããªãåäœæããå¿
èŠãããããšãèŠåããããšããããŸããã
PIPENV_VENV_IN_PROJECT
ããã®ã§çŽããããååãä»ãããã pipenv
䜿çšããŠããŸããvenv
æšæºã©ã€ãã©ãªã§åºè·ããããã䜿çšããŠããŸãvirtualenv
å¥ã®ãããžã§ã¯ãã§ãã
ãã®ãããžã§ã¯ãã«æ £ããŠããã®ã§ãã€ãŸãããããšã«ã€ããŠãã£ãŒãããã¯ãæäŸããããšããŠããŸãã
@Flimmã®ãã€ã³ãã¯ããã®æ å ±ãæœè±¡åããããšã§ãã virtualenvsã管çããä»ã®ããŒã«ãã©ã®ããã«æ©èœããããç¥ã£ãŠããå Žåã¯ãvirtualenvsã®ãã©ã«ããŒã移åãããšããããèŠã€ãããªããªãããšããã§ã«ç¥ã£ãŠããã¯ãã§ãã æ £ããŠããªãå Žåã¯ããããããããæãäžããããšã¯ãªãã§ãããã
virtualenvsã®çæã«äœ¿çšããããã¯ãšã³ãã©ã€ãã©ãªãšç°å¢å€æ°ã®åœåã«é¢ããŠã¯ãåè ã¯ããã»ã©éèŠã§ã¯ãªããåŸè ã¯åºãåãå ¥ããããŠããçç¥åœ¢ã§ãã 詳现ã¯éèŠã§ããããããåé¡ãåŒãèµ·ãããŠãããšã¯æãããŸãããäž»ãªå察æèŠã¯ãPythonå®è¡å¯èœãã¡ã€ã«ããã©ã«ããŒã«é 眮ããããã«äœ¿çšããããã¯ãšã³ããããããªãããšã«åºã¥ããŠããããã§ãã ãã°ã«ééããå Žåã¯å ±åããŠãã ããã _çç±ã ãã§_ç°å¢å€æ°ãå€æŽããã€ããã¯ãããŸããã
ç°å¢å€æ°ã¯ã次ã®ããã¥ã¡ã³ãã§ããã«å ¥æã§ããŸããhttpïŒ //pipenv.readthedocs.io/en/latest/advanced/#configuration -with-environment-variablesãªã®ã§ã衚瀺ãããŠããªãå Žåã¯ããããããã¹ãŠãèªãã§ããŸããããã
@techalchemyä»ã®ããŒã«ã§ã¯ã virtualenvwrapper
ãããªãã®ãæå³ããŠãããšæããŸãã ç§ã¯virtualenvwrapper
䜿ããã«äœå¹Žãè¡ããŸããã Node / NPMã®node_modules
ãã¿ãŒã³ã«ç²ŸéããŠããPythonéçºè
ã®æ°ã¯ã virtualenvwrapper
ãŸãã¯pipenv
粟éããŠããPythonéçºè
ã®æ°ãããå€ããšæããŸãã
å¥ã®å·ïŒ1919ã®PIPENV_VENV_IN_PROJECT
ã®ååä»ãã§ã virtualenv
ã§ã¯ãªãvenv
ãžã®çŽããããåç
§ã«ã€ããŠã³ã¡ã³ãããŸããã èšããŸã§ããªããç§ã¯ããªããç§ãæã£ãŠãããšæãç«å Žãå®å
šã«ã¯æã£ãŠããŸããã
ãããã«ãããå ã®åé¡ã®è³ªåã«çããŸãã ç§ã¯ãã®è°è«ãé·åŒãããããããŸãããããªãããããæããªãã°ãæåŸã®èšèãèªç±ã«æã£ãŠãã ããã
ããã¯ééã£ãèŽè¡ã§ããããšã¯ç解ããŠããŸããããã®è°è«ãç¶ããŠããã®ã§...ãŸãã node_modules
ãvirtualenv
ã§ã¯ãªãã pipenv
ã€ã³ã¹ãã¬ãŒã·ã§ã³ã ã£ããšã¯æããŸããvirtualenv
ã©ã¡ããã ç§ã®æšæž¬ã¯æŽå²çã«ééã£ãŠãããããããŸãããã rbenv
ãšvirtualenv
äž¡æ¹ã§äœæ¥ããå¿
èŠãããããã virtualenv
ã¯ç解ã®ãªãæªãã³ããŒã®ããã«æããããããããåæã®ãããã¿ã€ãã§ã rbenv
ã«ãã£ãŠæ¹è¯ãããŸããã ãããã®å Žåãã virtualenv
ã¯rbenv
ãšæ¯èŒããŠç¬ãæ ªã§ããããã®çç±ã¯æ¬¡ã®ãšããã§ãã
ç°å¢ããšã«ããã±ãŒãžãã³ããŒããŸãã ããã¯æãã§ãé
ããæ··ä¹±ãæããŸãã ããã¯åã«æªãèšèšäžã®æ±ºå®ã§ããããããã決å®ã®æ¬ åŠã§ãã誰ãããããã®ããã±ãŒãžãä»»æã®ãã£ã¬ã¯ããªã«é
眮ããããã®ã³ãŒããæžããããããã®ããã«èµ·ãã£ãã®ã§ãã ãã®äžãWindowsã§ã¯å®éã«ã¯æ©èœããŸããã Windowsã§å®éã«ãã¹ããããããšããªããšããç¹ãŸã§... OSããã¹ãããWindowsã§å®è¡ãããŠããããšãæ€åºãããšãããŒã ãã£ã¬ã¯ããªã~
ã«èšå®ããŸããããã¯ããã©ã«ãã§ããåŸã§ããã€ãã®ç°å¢å€æ°ã«ãã£ãŠãªãŒããŒã©ã€ããããå¯èœæ§ããããŸãããå®éã«ç£èŠãããã¯ãªãŒã³ãªç°å¢ã§èªååãå®è¡ããããšããŠããå Žå... virtualenv
ã¯ãåããã£ã¬ã¯ããªã«ããã±ãŒãžãã€ã³ã¹ããŒã«ããããšã¯ãããŸããã
ã ãã... pipenv
ã¯ã requests
ã®ãããªäººéã®ããã®ããŒã«ã§ãããšäž»åŒµããŠããŸã...ç§ã¯æšæž¬ããŸããïŒ ã ãããããã¯åä»»è
ã«ãã£ãŠãªãããæªçãªåªåãæ¹åããã¹ãã§ã...ãŸããããªããããªãã®åã®ãã®ãšåãããšãããããã°ã©ã ãäœããããªããããã¯è¡ãæ¹æ³ã®ããã§ãããããè¯ãã§ããæ£ããïŒ ããã§ãã virtualenv
ã®ãŽããæšãŠã代ããã«ããã®ãŸãŸäœ¿çšããŸãã ã©ãããŒã¯ãã©ãããããããã°ã©ã ã®äžéšã®é¢æ°ã®äœ¿çšãèš±å¯/å°é£ã«ãããšããç¹ã§ãã©ãããããããã°ã©ã ãšã®ã¿ç°ãªããŸã...
ç§ã®äººçã§ã¯ãèªååãè¡ãè©Šã¿ããããããããŸããããããã¯ã²ã©ãããšã§ããããçããã¯æãçã£ãŠããŸããæçšãªæ å ±ãæ²èŒããåã§ãã£ãŠãããããã®äžåœãªè©äŸ¡ããã¹ãŠãµã€ãã«æ²èŒããŸãã ããããããªãã¯çŽæãæãããŠããŸããã å®éã«ã¯ãå®éã®äœæ¥ãè¡ãããšãªããäžè«ãæäœããã ãã§ãã ãããŠä»ãèªååãããªããã°ãªããªãããã°ã©ããŒã¯ã誰ããGitHubã§ãã£ãšããããããååŸãããã£ããšããçç±ã ãã§ãå¥ã®æªã«çŽé¢ããå¿ èŠããããŸã...
@wvxvw確ãã«ããªãã¯ééã£ãŠããŸãã virtualenvã¯rbenvãã5幎ïŒ4幎ã以äžãåç
§ïŒã»ã©åã®ãã®ã§ãããããããã«è§Šçºãããããšã¯ãããŸããã ãŸãããããã¯æ ¹æ¬çã«ç°ãªããã®ã§ãããæçµçã«ã¯åæ§ã®ç®æšãéæããã ãã§ãã ããªããæ¢ããŠããã®ã¯ïŒrbenvã«è§Šçºãããã©ã³ã¿ã€ã 管çããŒã«ïŒpyenvã§ãã
ãŸããvirtualenvãä»ã®ããŒã«ãšåçã§ã¯ãªãããšã«ã€ããŠãã10幎åããååšããŠããããšããåç¥ã§ããã ãœãããŠã§ã¢éçºã®èŠä»¶ã¯å€§ããå€åãããããè¡ã£ãä»®å®ã¯åŸã ã«æ代é ãã«ãªãã誰ãããã眮ãæããããã«ã¹ãããã¢ããããããšãæ°ã«ããŸããã§ããã ããªãã¯ã¹ãããã¢ããããã®ã«ååæ°ã«ããŠããŸããïŒ
誰ãã話ãæ©äŒã«å€ããããšã¯ç解ããŠããŸããããããã¯ãæå°éã«ç解ããã«ãã£ã¹ã«ãã·ã§ã³ã«åå ããããã«æãæãå§ããããšã¯ãPipenvãvirtualenvãããã³Pythonããã±ãŒãžã³ã°ã·ã¹ãã å šäœã®è²¢ç®è ã«ãšã£ãŠéåžžã«å€±ç€Œã§ãã ãããããªãã§ãã ããã
ç·šéïŒç§ã¯ããã€ãã®æãäžããããŸããã virtualenvã®æåã®ãªãªãŒã¹ã§ãã0.8ã¯2007幎ã«äœæãããrbenvïŒ0.1ïŒã¯2011幎ã§ãã£ãããã5幎ã§ã¯ãªã4幎é¢ããŠããŸãã
@wvxvwç§ã¯ããªãã䟮蟱ãæäŸããã®ãèŠãã ãã§ãã ãã®ãããªæ 床ã¯ãããã§ã¯ããŸãæè¿ãããŸããã æçš¿ãç¶ããåã«ãè¡åèŠç¯ãã芧ãã ããã
ãããžã§ã¯ããã¹ãå€æŽããåŸãåãåé¡ãçºçããå ã®virtualenvãããã³ã°ã倱ãããåŸããã®ã¹ã¬ãããèªã¿ãŸããã ãŸããpipenvããŒã ã®ä»äºã«æè¬ããŸãã ãã®è°è«ã«ã€ããŠå ±æãããããã€ãã®æèŠããããŸãïŒ
ãã®ããã¥ã¡ã³ãã§ã¯ããããžã§ã¯ããã¹ãšenvã®éã®ãããã³ã°ã¡ã«ããºã ãææããå°ãªããšããŠãŒã¶ãŒã«changing project path would cause unmapping the original env
ããšãèŠåããå¿
èŠããããŸãã
Pipfileã§envãžã®ãã¹ãæåã§èšå®ã§ãããšããã§ããããïŒ ã€ãŸããåãç°å¢ãæåã§äœ¿çšããã«ã¯ãç¹å¥ãªèŠä»¶ãããå ŽåããããŸãã
çãããšå ±æããç§ã®æèŠã§ãã
pipenvã®äœ¿çšæ¹æ³ã¯å®å šã«äžæã§ãã 1ã€ã®ãããžã§ã¯ãã«å€ãã®ä»®æ³ç°å¢ãçšæããå¿ èŠããããŸããïŒ ãããžã§ã¯ãéã§ä»®æ³ç°å¢ãå ±æããå¿ èŠããããŸããïŒ PythonããŒãžã§ã³ããã®ãããžã§ã¯ãã«ã®ã¿å¿ èŠãªå Žåãpipenvã䜿çšããŠç¹å®ã®ãããžã§ã¯ãã«å¥ã®PythonããŒãžã§ã³ãã€ã³ã¹ããŒã«ããã«ã¯ã©ãããã°ããã§ããïŒ ä»ã®äººãã©ãããæ¥ãŠããã®ããç解ããããšããã«ãä»ã®äººã«ã€ããŠããããã®ããšãæ³å®ããŠã誰ãããã®ã¹ã¬ããã§èªåèªèº«ã§ãã£ã±ãã§ãã ããŒã ããŒãžã§pipenvã®è€ãèšèãèªãã ãšãããããç§ã«åœ¹ç«ã€ãšä¿¡ããŠããŸããã 代ããã«ãç§ã¯ãããšæ Œéããã®ã«5æ¥éãç¡é§ã«ããŸããããããŠä»ããããå°ãªããšããããã決å®è«çã ã£ãã®ã§ãç§ã¯pyenvã«æ»ããšæããŸãã
1ã€ã®ãããžã§ã¯ãã«è€æ°ã®ç°å¢ã䜿çšããå Žåã¯ãtoxã䜿çšããŸãã ã¡ã€ã³ã®éçºç°å¢ã«ã¯pipenvã䜿çšããè€æ°ã®PythonããŒãžã§ã³ã§ã®ãã¹ãã«ã¯toxã䜿çšããŸãã
@ashnurããªãã¯æããã«äœããããå¿ èŠããããŸãã ãã©ã³ãã£ã¢ãéå¶ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«ãã¬ãã£ããªãã®ãåºããã®ã§ã¯ãªããäœã圹ã«ç«ã€ãã®ãæäŸããŠã¿ãŸãããïŒ
@uranusjr
ããã¯ããã·ã¥ãçºçããå Žæã§ããïŒ
ç§ã¯ãããžã§ã¯ãã«åãçµãã§ããããã¹ã®ããã·ã¥ãèšç®ããå¿ èŠããããŸãã
@devxpyããããã®éãã
çããã¯ãpipenvã䜿çšããŠvirtualenvãã»ããã¢ããããæ¹æ³ã«ã€ããŠãåºæ¬çãªãã¥ãŒããªã¢ã«ãäœæããå¿ èŠããããšæããŸããããã¯ã人ã ã«ãšã£ãŠäœ¿ãããããããããå€ãã®äººã ãããã䜿çšããããã§ãããæ··ä¹±ãåŒãèµ·ããå Žåã¯ãããå€ãã®äººã ãããã䜿çšãããä»ã®äººãæ¢ãå¯èœæ§ããããŸãããã§ãããžã§ã¯ããæ§ç¯ããããã®èšèªãŸãã¯æ¹æ³
@uranusjr Pipenvãããã©ã«ãã§ãããžã§ã¯ããã£ã¬ã¯ããªã«virtualenvãäœæããªãçç±ã¯äœã§ããïŒ ç§ã®èŠæ¹ã§ã¯ããããžã§ã¯ãã®ååãå€æŽ/移å/åé€ããããšãã«ãå€ç«ããç°å¢ã®åé¡ã解決ãããŸãã ãã®äžããããnpmã®ããã«æ©èœããããšãïŒããçšåºŠæ£åœã«ïŒæåŸ ããŠãã人ã ã«ãšã£ãŠã¯ããã»ã©æ··ä¹±ããªãã§ãããã
å€åäŒçµ±ä»¥å€ã«ãã®ã¢ãããŒãã奜ãããšã«ã¯äœãå©ç¹ããããŸããïŒ
pipenvinstallã³ãã³ãã®åã«.venvãã£ã¬ã¯ããªãäœæããã ãã§ãã pipenvã€ã³ã¹ããŒã«ã®âvenvãŸãã¯âdot-venvãªãã·ã§ã³ã¯ãå®éã«ã¯æè¿ãããŸã:)
2018.10.9以éããããè¡ãå¥ã®æ¹æ³ããããŸãã ä»®æ³ç°å¢ãžã®ãã¹ãå«ã.venv
ãã¡ã€ã«ãè¿œå ã§ããŸãã ïŒåå£ãªæ°æ©èœïŒïŒ
@andrewpeterprifer以åã¯ãããè¡ã£ãŠãããããéåžžã«åŒ·ãæåŠãã人ããããããå€æŽããå¿ èŠããããŸããã ããããã®ã¢ãããŒããéžæããå¿ èŠãããããããžã§ã¯ããã£ã¬ã¯ããªå ã«ä»®æ³ç°å¢ãé 眮ããªãæ¹ãããã©ã«ãã§ãããšèªããããåŸãŸããã§ããã
psããªãïŒãŸãã¯èª°ãïŒã¯ããã«ã€ããŠã®ãããã質åã®ãšã³ããªãæžãããšã«èå³ããããŸããïŒ ããããæ°æ®µèœãããã§ããããã誰ããããã¹ãã磚ããŠPRãæåºããã®ã«æéãããããšçŽæãããã©ããã説æããããšæããŸãã
@uranusjrãªããããããè¯ãããã©ã«ãã§ããã®ãç§ã¯éåžžã«èå³ããããŸãã ç§ã¯Pythonã«æ¯èŒçæ £ããŠããªãã®ã§ãä»ã§ã¯ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠæãããªäœããæ¬ ããŠããããã«æããŸãã ïŒïŒ ããããšãïŒ
PSïŒãªãç©äºããããªã£ãŠããã®ãã説æããŠããã ããã°ãFAQãšã³ããªãæžãããšãã§ããŸãã ;ïŒ
2018.10.9以éããããè¡ãå¥ã®æ¹æ³ããããŸãã ä»®æ³ç°å¢ãžã®ãã¹ãå«ã
.venv
_ file_ãè¿œå ã§ããŸãã ïŒåå£ãªæ°æ©èœïŒïŒ@andrewpeterprifer以åã¯ãããè¡ã£ãŠãããããéåžžã«åŒ·ãæåŠãã人ããããããå€æŽããå¿ èŠããããŸããã ããããã®ã¢ãããŒããéžæããå¿ èŠãããããããžã§ã¯ããã£ã¬ã¯ããªå ã«ä»®æ³ç°å¢ãé 眮ããªãæ¹ãããã©ã«ãã§ãããšèªããããåŸãŸããã§ããã
psããªãïŒãŸãã¯èª°ãïŒã¯ããã«ã€ããŠã®ãããã質åã®ãšã³ããªãæžãããšã«èå³ããããŸããïŒ ããããæ°æ®µèœãããã§ããããã誰ããããã¹ãã磚ããŠPRãæåºããã®ã«æéãããããšçŽæãããã©ããã説æããããšæããŸãã
ã¶ã€ãã£ãŠãã¿ãŸãã... pipenvã§äœæãããä»®æ³ç°å¢ãæã€ãããžã§ã¯ããã©ã«ãã移åããã®ãšãŸã£ããåãå¿ èŠããããŸãã
çŸåšãç§ã¯æ¬¡ã®ããšãè¡ã£ãŠããŸããããŸã£ããåé¡ã¯ãããŸããã
ãã¹ãŠåé¡ãªãåäœããŸãã ããã¯æªãç¿æ £ã§ããïŒ
@uranusjrã®ã³ã¡ã³ãã«é¢ããŠãæ°æ©èœãæ£ããç解ããŠããå Žåã¯ã.venvãã¡ã€ã«ïŒç®çã®ä»®æ³ç°å¢ãžã®ãã¹ãå«ãïŒããããžã§ã¯ããã©ã«ããŒã«è¿œå ããå¿
èŠããããŸããïŒ ãããŠãããã¯ç§ã以åã«äŒã£ããã¹ãŠã®ã¹ããããããªããã°ãªããªãããšãç§ãåé¿ããã ãããïŒ ãããããªããããã¯çŽ æŽãããã§ãïŒ
ãã®å Žåãä»®æ³ç°å¢ãæåã«äœæããããšãã«ããã®ãããªãã¡ã€ã«ããããžã§ã¯ããã©ã«ããŒã«èªåçã«äœæãããæ¹ãããã®ã§ã¯ãªãã§ããããã
PSïŒç§ãFAQãæžããããšæã£ãŠããŸã
å®éã @ gioxc88ã®ã¢ã€ãã¢ã¯è¯ããšæããŸããæ°ããäœæãããvirtualenvã¯ããããžã§ã¯ãã«ãŒãã®äžã«.env
ãã¡ã€ã«ãèªåçã«çæã§ãã PATH
ãããªenvæ§æãå«ã¿ãŸãã ããã«ãããéçºè
ã«ãšã£ãŠç°å¢ãããééçã«ãªããåæ§æããããã®ãã䟿å©ãªæ¹æ³ã«ãªããŸãã
ç§ã¯ããªãã®è³ªåã«äžç·ã«çããããšããŸãã ã¢ãããŒãã¯æªããããŸããïŒIMO;ç§ãåãã»ããã¢ããã䜿çšããŠããŸãïŒã ãã ããç¥ããªããŠãŒã¶ãŒãã€ãŸããã®ã¯ç°¡åã§ãã
ãããèãã1ã€ã®æ¹æ³ã¯ããããžã§ã¯ããããŒãžã§ã³ç®¡çã«çœ®ãããšãæ€èšããããšã§ãïŒGitãªã©ïŒã ç°å¢ããããžã§ã¯ãã«ãŒãã§äœæãããŠããå Žåãããã¯åœç¶ãªããžããªã«ãŒãã«ãããŸãã ãã®èšå®ã«æ
£ããŠããããªããç§ã®ãããªäººã
ã¯ã .venv
ãã£ã¬ã¯ããªããã§ãã¯ã€ã³ãããªãããã«ã .gitignore
ïŒãŸãã¯ã°ããŒãã«ç¡èŠæ§æïŒã«ã«ãŒã«ãè¿œå ããå¿
èŠãããããšãæããã«ç¥ã£ãŠããŸãããçããæããªããŠãŒã¶ãŒã¯ããããŸããã§ããããããŠå¶ç¶ã«ç°å¢ãéåžžã«ç°¡åã«ãã§ãã¯ããããšãã§ããŸããã ããã¯ãããžã§ã¯ã管çã«æªãã ãã§ãªããïŒããã«éèŠãªããšã«ïŒããŒã«ã«æ
å ±ãå
¬éããããšã«ãã£ãŠæœåšçãªæ»æãžã®ãã¯ãã«ãæäŸããŸãã ãããã£ãŠããããžã§ã¯ã管çããŒã«ã§ã¯ãçæããããã¡ã€ã«ããããžã§ã¯ããã£ã¬ã¯ããªå
ã«é
眮ãnode_modules
ïŒããããè¡ãããšã¯åé¡ãããŸãããïŒããšãã°ãNPMã®
ããã©ã«ãã§ãããžã§ã¯ãã«ãŒãã®å€éšã§ç°å¢ãçæãããŠããå Žåããããžã§ã¯ããå ¬éãããšãã«å¿é ããå¯èœæ§ã1ã€å°ãªããªããŸãïŒããšãã°ããããžã§ã¯ããGitHubã«ããã·ã¥ããŸãïŒã ããã¯ç§ãã¡ïŒãããžã§ã¯ãå ã®ç°å¢ã奜ãïŒã®ç掻ãå°ãé£ããããŸããããªã¹ã¯ã®èŠ³ç¹ãããèµ·ããåŸãææªã®äºæ ã¯ããããžã§ã¯ãã誀ã£ãŠç§»åããŠç°å¢ãå£ãããããããžã§ã¯ããåé€ããããšãã«ç°å¢ãåé€ããã®ãå¿ãããããããšã§ãã ã©ã¡ãããæœåšçã«æ©å¯æ§ã®é«ãç°å¢æ å ±ã誀ã£ãŠGitHubã«ããã·ã¥ãããããã¯ããã«ç°¡åã«å埩ã§ããŸãã
.venv
ãã¡ã€ã«æ©èœã¯ãŸã ããªãæ°ããïŒã»ãã®æ°æ¥åã«ãªãªãŒã¹ãããŸããïŒãç§ãã¡ã¯ãŸã ãããæ倧éã«æŽ»çšããæ¹æ³ã暡玢ããŠããŸãã .venv
ãã£ã¬ã¯ããªãšåãåé¡ããããŸãããããã»ã©æªããªãããšãé¡ã£ãŠããŸãã ç§ã¯ãã®æ©èœãæ¬åœã«å¥œãã§ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããã«ãã®æ©èœã䜿çšã§ããããšãé¡ã£ãŠããŸãããããã§ã¯ãŸã èæ
®ãã¹ãããšããããããããŸãã
ããã«ã¡ã¯ãç§ã«ãšã£ãŠã¯ã.venvãã£ã¬ã¯ããªïŒå€ãæ©èœïŒãš.venvãã¡ã€ã«ïŒæ°ããæ©èœïŒã¯åé¡ãããŸããããpipenvinstallã³ãã³ãã«ãªãã·ã§ã³ããããšéåžžã«ãããããã§ãã
äœãã®ãããªãã®ïŒ
pipenv install
~/.local/
ã€ã³ã¹ããŒã«ããŸã
pipenv install --venv
$PWD/.venv
ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ããŸã
pipenv install --venv-dir /my/custom-path
/my/custom-path
ã€ã³ã¹ããŒã«ãããŸãã
æ°æ©èœãå¿
èŠãªå Žåã¯ã ~/.peeps
æ¡åŒµææ¡ãè¡ã£ãŠãé©åã«ææ¡ããŠãã ããã ããŸããŸãªåé¡ã«ã©ã³ãã ã«æ£ãã°ã£ãŠããæ¡åŒµææ¡ãäœæããªãã§ãã ããã远跡ã§ããŸããã
@uranusjr詳现ãªåçããããšãããããŸãïŒ ç§ã®å¥œå¥å¿ãæºããããã«ããã§ãã¯ã€ã³ãããpython venvã«ãã£ãŠãã©ã®ãããªçš®é¡ã®ããŒã«ã«ïŒæœåšçã«æ©å¯æ§ã®é«ãïŒæ å ±ãå ¬éãããå¯èœæ§ããããŸããïŒ node_modulesããã§ãã¯ã€ã³ããããšç ©ãããããšã«åæããŸãããéåžžã¯ããŒã«ã«æ å ±ãå«ãŸããŠããŸããã
Pythonä»®æ³ç°å¢ã«ã¯ãããã€ãã®ã·ã§ã«ã¹ã¯ãªãããå«ãŸããŠããŸãïŒäŸïŒ activate
ïŒã å€ãã®äººãããããå€æŽããŠãããŒã¿ããŒã¹ãã¹ã¯ãŒããå¥ã®æ§æãã¡ã€ã«ãžã®ãã¹ãªã©ãæå®ããç°å¢å€æ°ãè¿œå ããŸããä»®æ³ç°å¢ã§ã¹ã¯ãªãããå€æŽããããšã¯ãã¹ããã©ã¯ãã£ã¹ã«åããŸãããããã§ã人ã
ã¯ãããè¡ããŸãïŒãããŠãããããããããã«æ瀺ãããšé²åŸ¡çã«ãªããŸã-å人çäœéšïŒã
ãŸãããã®éãã§ãã node_modules
ã¯æ©å¯æ
å ±ãå«ãŸããŠããªãå¯èœæ§ããããŸãã ããã¯ããšã³ã·ã¹ãã ããŒãããæ§ç¯ããå Žåã®ãã1ã€ã®å©ç¹ã§ãã æ®å¿µãªãããPythonä»®æ³ç°å¢ã¯ããããäžè¬çãªåé¡ã«ãªãåã«çºæãããŸããïŒåœæãVCSã䜿çšããŠããå Žåã¯ããã§ã«æç¥ã§ãïŒã
pipenvãæ£ããvirtualenvãã©ã®ããã«ç¥ã£ãŠããããç解ããããšããŠãããšãã«ããã«å°çããŸãã:)
ãã®è°è«ãããããšãã¿ããªã ãããããã¡ã€ã³ããŒãžïŒããšãã°ãããïŒã§ããããžã§ã¯ããã¹ã®ååãå€æŽãããšãvirtualenvãã€ã³ãã£ã³ã°ã®ããã©ã«ãã®ã¡ã«ããºã ãå£ããããšãæå®ããããšããå§ãããŸãã
ãã¹ãŠã®ããã¥ã¡ã³ãããŒãžã¯å¯çš¿ã®ããã«éãããŠããŸãã ç©äºãæ±ããªãã§ãã ããããããããŠãã ãã:)
ããŸãïŒ
@uranusjrããã¯ããã£ã¬ã¯ããªã®ååãå€æŽãããšããããžã§ã¯ãã®virtualenvã倱ãããããšãæå³ããŸãã ããã¯è¯ããªããã ãã£ã¬ã¯ããªã®ååãå€æŽããããšã¯äžè¬çãªäœ¿çšäŸã§ããããŠãŒã¶ãŒã¯ããã«é¥ããç°å¢ãã©ã®ããã«æ©èœããªããªã£ãã®ãçåã«æããããããŸããã
å¯èœã§ããã°ããããä¿®æ£ããŠPipfileã«ãšã³ããªãäœæããããšããå§ãããŸãã ãŸãã¯ãå¥ã®.pipenvãã¡ã€ã«ãäœæããŠããã®ãããªã¡ã¿ããŒã¿ãåãããžã§ã¯ããã£ã¬ã¯ããªã«ä¿åããŸãã
äœãæ瀺ããŠããã§ãã ïŒ
äž¡æ¹ã®è³ªåã«çããŠãããŠããããšãïŒ
äž¡æ¹ã®è³ªåãããŠãããŠããããšãã ç§ãåãåé¡ã«ééããŸãã
ééã£ããã£ã¬ã¯ããªã§pipenvãåæåããæ£ãããã£ã¬ã¯ããªããvirtualenvãã£ã¬ã¯ããªãå©çšããå¿
èŠãããå Žåã¯ã pipenv --venv
ãå®è¡ãã PIpfile
ãšPipfile.lock
ã移åããããšã§virtualenvãã¹ãååŸã§ããŸããæ£ãããã£ã¬ã¯ããªã«ç§»åããŸãã
echo ${PATH_OBTAINED_FROM_PREVIOUS_COMMAND} > .venv
ã¯æ£ãããã£ã¬ã¯ããªã«ãããæ£ããæ©èœããã¯ãã§ãã
ä»æ¥ã芪ãã£ã¬ã¯ããªã«pipfileãããå Žåãpipenvã¯ç°å¢å€æ°export PIPENV_VENV_IN_PROJECT=1
ãç¡èŠãã代ããã«èŠªãã£ã¬ã¯ããªã«venvãã€ã³ã¹ããŒã«ããããšã«æ°ä»ããŸããã ããã¯ãªãªãŒã¹2018.11.26
ãŸãã 芪ãã£ã¬ã¯ããªããpipfileãåé€ãããšãpipenvã¯ææžåããããšããã«æ©èœããŸãã
æãåèã«ãªãã³ã¡ã³ã
@uranusjrããã¯ããã£ã¬ã¯ããªã®ååãå€æŽãããšããããžã§ã¯ãã®virtualenvã倱ãããããšãæå³ããŸãã ããã¯è¯ããªããã ãã£ã¬ã¯ããªã®ååãå€æŽããããšã¯äžè¬çãªäœ¿çšäŸã§ããããŠãŒã¶ãŒã¯ããã«é¥ããç°å¢ãã©ã®ããã«æ©èœããªããªã£ãã®ãçåã«æããããããŸããã
å¯èœã§ããã°ããããä¿®æ£ããŠPipfileã«ãšã³ããªãäœæããããšããå§ãããŸãã ãŸãã¯ãå¥ã®.pipenvãã¡ã€ã«ãäœæããŠããã®ãããªã¡ã¿ããŒã¿ãåãããžã§ã¯ããã£ã¬ã¯ããªã«ä¿åããŸãã
äœãæ瀺ããŠããã§ãã ïŒ
äž¡æ¹ã®è³ªåã«çããŠãããŠããããšãïŒ