virtualenvãšvenvã䜿çšããPythonä»®æ³ç°å¢ã®ã»ããã¢ããã«é¢ããå æ¬çãªã¬ã€ããäžçäžã®éçºè åãã«ããããžã§ã¯ãã®åé¢ãšäŸåé¢ä¿ç®¡çã確å®ã«è¡ããŸãã
Python Virtualenvã®ã»ããã¢ããïŒåé¢ãããç°å¢ã®äœæ
Pythonéçºã®äžçã§ã¯ãäŸåé¢ä¿ã®ç®¡çãšãããžã§ã¯ãã®åé¢ã¯ãå ç¢ã§ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãäœæããããã«äžå¯æ¬ ã§ãããããå®çŸããæã广çãªæ¹æ³ã®1ã€ã¯ãä»®æ³ç°å¢ã䜿çšããããšã§ããä»®æ³ç°å¢ã¯ãç¹å®ã®Pythonã€ã³ã¿ãŒããªã¿ãŒãšãã®ã€ã³ã¹ããŒã«æžã¿ããã±ãŒãžãå容ããèªå·±å®çµåã®ãã£ã¬ã¯ããªã§ããããã«ãããããŸããŸãªããã±ãŒãžããŒãžã§ã³éã§ç«¶åãçºçããããšãªããããããç¬èªã®äŸåé¢ä¿ã»ãããæã€è€æ°ã®ãããžã§ã¯ããåæã«äœæ¥ã§ããŸãã
ãªãä»®æ³ç°å¢ã䜿çšããã®ãïŒ
2ã€ã®Pythonãããžã§ã¯ããæ±ã£ãŠããã·ããªãªãèããŠã¿ãŸãããããããžã§ã¯ãAã¯ç¹å®ã®ã©ã€ãã©ãªã®ããŒãžã§ã³1.0ãå¿ èŠãšãããããžã§ã¯ãBã¯åãã©ã€ãã©ãªã®ããŒãžã§ã³2.0ãå¿ èŠãšããŸããä»®æ³ç°å¢ããªãå Žåãã©ã€ãã©ãªãã°ããŒãã«ã«ã€ã³ã¹ããŒã«ãããšãäžæ¹ã®ãããžã§ã¯ãã§äºææ§ã®åé¡ãçºçããå¯èœæ§ããããŸããä»®æ³ç°å¢ã¯ãåãããžã§ã¯ãã«ç¬èªã®ããã±ãŒãžã»ãããæäŸããããšã§ããã®åé¡ã解決ããŸãã
ä»®æ³ç°å¢ã䜿çšããããšã®äž»ãªå©ç¹ã次ã«ç€ºããŸãã
- äŸåé¢ä¿ã®åé¢ïŒåãããžã§ã¯ãã¯ç¬èªã®äŸåé¢ä¿ã»ãããæã¡ãç«¶åãé²ããŸãã
- ããŒãžã§ã³ç®¡çïŒããŸããŸãªãããžã§ã¯ãã«å¯ŸããŠãããŸããŸãªããŒãžã§ã³ã®ããã±ãŒãžãç°¡åã«ç®¡çã§ããŸãã
- ãããžã§ã¯ãã®åçŸæ§ïŒåãäŸåé¢ä¿ãæã€ããŸããŸãªãã·ã³ã§ããããžã§ã¯ããç°¡åã«è€è£œã§ããããã«ããŸãã
- ã¯ãªãŒã³ãªã°ããŒãã«ç°å¢ïŒã°ããŒãã«ãªPythonã€ã³ã¹ããŒã«ãã¯ãªãŒã³ã§æŽçãããç¶æ ã«ä¿ã¡ãŸãã
ä»®æ³ç°å¢ã®ã»ããã¢ããïŒvirtualenvãšvenv
Pythonã§ä»®æ³ç°å¢ãäœæããããã®äž»èŠãªããŒã«ã2ã€ãããŸããvirtualenv
ãšvenv
ã§ããvirtualenv
ã¯ãé·ãéååšããå¹
åºãæ©èœãæäŸãããµãŒãããŒãã£ããã±ãŒãžã§ããvenv
ã¯ãPython 3.3以éã®çµã¿èŸŒã¿ã¢ãžã¥ãŒã«ã§ãããvirtualenv
ã®è»œéãªä»£æ¿ææ®µãæäŸããŸããã©ã¡ãã®ããŒã«ãåãç®æšãéæããŸããã€ãŸããåé¢ãããPythonç°å¢ãäœæããããšã§ãã
virtualenvã®äœ¿çš
virtualenv
ã¯ãä»®æ³ç°å¢ãäœæããããã®äººæ°ããããåºã䜿çšãããŠããããŒã«ã§ãããã®äœ¿ç𿹿³ã¯æ¬¡ã®ãšããã§ãã
ã€ã³ã¹ããŒã«
ãŸããvirtualenv
ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããããã¯ãpipã䜿çšããŠå®è¡ã§ããŸãã
pip install virtualenv
ä»®æ³ç°å¢ã®äœæ
virtualenv
ãã€ã³ã¹ããŒã«ããããããããžã§ã¯ããã£ã¬ã¯ããªã«ä»®æ³ç°å¢ãäœæã§ããŸããã¿ãŒããã«ã§ãããžã§ã¯ããã£ã¬ã¯ããªã«ç§»åããæ¬¡ã®ã³ãã³ããå®è¡ããŸãã
virtualenv myenv
ãã®ã³ãã³ãã¯ãä»®æ³ç°å¢ãå«ãmyenv
ãšããååã®æ°ãããã£ã¬ã¯ããªïŒä»»æã®ååãéžæã§ããŸãïŒãäœæããŸããmyenv
ãã£ã¬ã¯ããªã«ã¯ã次ã®ãµããã£ã¬ã¯ããªãå«ãŸããŸãïŒ
bin
ïŒPythonå®è¡å¯èœãã¡ã€ã«ãšã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¯ãªãããå«ãŸããŸããinclude
ïŒPythonæ¡åŒµæ©èœãã³ã³ãã€ã«ããããã®CããããŒãå«ãŸããŸããlib
ïŒã€ã³ã¹ããŒã«ãããããã±ãŒãžãååšããsite-packagesãã£ã¬ã¯ããªãå«ãŸããŸãã
ä»®æ³ç°å¢ã®ã¢ã¯ãã£ãå
ä»®æ³ç°å¢ã䜿çšããã«ã¯ããããã¢ã¯ãã£ãåããå¿ èŠããããŸããããã«ãããã·ã§ã«ç°å¢å€æ°ã倿Žãããä»®æ³ç°å¢å ã®Pythonã€ã³ã¿ãŒããªã¿ãŒãšããã±ãŒãžã䜿çšãããŸãã
Linux/macOSã§ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
source myenv/bin/activate
Windowsã§ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
myenv\Scripts\activate
ã¢ã¯ãã£ãååŸãã¿ãŒããã«ããã³ããã倿Žãããã¢ã¯ãã£ããªä»®æ³ç°å¢ïŒäŸïŒ(myenv) $
ïŒã瀺ãããŸããããã§ãpipã䜿çšããŠã€ã³ã¹ããŒã«ããããã±ãŒãžã¯ãä»®æ³ç°å¢å
ã«ã€ã³ã¹ããŒã«ãããã°ããŒãã«Pythonã€ã³ã¹ããŒã«ãä»ã®ä»®æ³ç°å¢ã«ã¯åœ±é¿ããŸããã
ä»®æ³ç°å¢ã®éã¢ã¯ãã£ãå
ãããžã§ã¯ãã§ã®äœæ¥ãå®äºããããæ¬¡ã®ã³ãã³ããå®è¡ããŠä»®æ³ç°å¢ãéã¢ã¯ãã£ãåã§ããŸãã
deactivate
ããã«ãããã¿ãŒããã«ããã³ãããéåžžã®ç¶æ ã«æ»ããã°ããŒãã«Pythonã€ã³ã¹ããŒã«ã䜿çšãããããã«ãªããŸãã
venvã®äœ¿çš
venv
ã¯ãPython 3.3以éã®çµã¿èŸŒã¿ã¢ãžã¥ãŒã«ã§ãããvirtualenv
ã®è»œéãªä»£æ¿ææ®µãæäŸããŸãããããå«ãPythonããŒãžã§ã³ã䜿çšããŠããå Žåã¯ãäžè¬çã«venv
ã䜿çšããããšããå§ãããŸãã
ä»®æ³ç°å¢ã®äœæ
venv
ã䜿çšããŠä»®æ³ç°å¢ãäœæããã«ã¯ãã¿ãŒããã«ã§ãããžã§ã¯ããã£ã¬ã¯ããªã«ç§»åããæ¬¡ã®ã³ãã³ããå®è¡ããŸãã
python3 -m venv myenv
ãã®ã³ãã³ãã¯ãmyenv
ïŒãŸãã¯éžæããä»»æã®ååïŒãšããååã®æ°ãããã£ã¬ã¯ããªãäœæããvirtualenv
ãšåæ§ã«ä»®æ³ç°å¢ãå«ãŸããŸãã
ä»®æ³ç°å¢ã®ã¢ã¯ãã£ãå
venv
ã®ã¢ã¯ãã£ãåããã»ã¹ã¯ãvirtualenv
ã®å Žåãšåãã§ããLinux/macOSã§ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
source myenv/bin/activate
Windowsã§ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
myenv\Scripts\activate
ã¢ã¯ãã£ãååŸãã¿ãŒããã«ããã³ããã¯ã¢ã¯ãã£ããªä»®æ³ç°å¢ã瀺ããã€ã³ã¹ããŒã«ããããã±ãŒãžã¯ç°å¢å ã«åé¢ãããŸãã
ä»®æ³ç°å¢ã®éã¢ã¯ãã£ãå
venv
ç°å¢ã®éã¢ã¯ãã£ãåããvirtualenv
ãšåæ§ã§ãã
deactivate
pipã«ããäŸåé¢ä¿ã®ç®¡ç
ä»®æ³ç°å¢ãã¢ã¯ãã£ãåããããpipã䜿çšããŠããã±ãŒãžãã€ã³ã¹ããŒã«ãã¢ããã°ã¬ãŒããããã³ã¢ã³ã€ã³ã¹ããŒã«ã§ããŸããäžè¬çãªpipã³ãã³ããæ¬¡ã«ç€ºããŸãã
- ããã±ãŒãžã®ã€ã³ã¹ããŒã«ïŒ
pip install package_name
ïŒäŸïŒpip install requests
ïŒ - ããã±ãŒãžã®ç¹å®ã®ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ïŒ
pip install package_name==version
ïŒäŸïŒpip install requests==2.26.0
ïŒ - ããã±ãŒãžã®ã¢ããã°ã¬ãŒãïŒ
pip install --upgrade package_name
ïŒäŸïŒpip install --upgrade requests
ïŒ - ããã±ãŒãžã®ã¢ã³ã€ã³ã¹ããŒã«ïŒ
pip uninstall package_name
ïŒäŸïŒpip uninstall requests
ïŒ - ã€ã³ã¹ããŒã«æžã¿ã®ããã±ãŒãžã®ãªã¹ã衚瀺ïŒ
pip list
ãŸãã¯pip freeze
èŠä»¶ãã¡ã€ã«ã®çæ
ãããžã§ã¯ãã®äŸåé¢ä¿ãä»ã®ãã·ã³ã§ç°¡åã«è€è£œã§ããããã«ããã«ã¯ãrequirements.txt
ãã¡ã€ã«ãçæããããšããå§ãããŸãããã®ãã¡ã€ã«ã«ã¯ãä»®æ³ç°å¢ã«ã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ããã±ãŒãžãšãã®ããŒãžã§ã³ããªã¹ããããŸãã
requirements.txt
ãã¡ã€ã«ãçæããã«ã¯ãä»®æ³ç°å¢ãã¢ã¯ãã£ãã«ããŠã次ã®ã³ãã³ããå®è¡ããŸãã
pip freeze > requirements.txt
ããã«ããããããžã§ã¯ããã£ã¬ã¯ããªã«requirements.txt
ãšããååã®ãã¡ã€ã«ãäœæãããŸããæ¬¡ã«ããã®ãã¡ã€ã«ããããžã§ã¯ãã®ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒäŸïŒGitïŒã«å«ããŠãä»ã®äººãåãäŸåé¢ä¿ãç°¡åã«ã€ã³ã¹ããŒã«ã§ããããã«ããŸãã
èŠä»¶ãã¡ã€ã«ããã®ã€ã³ã¹ããŒã«
requirements.txt
ãã¡ã€ã«ã«ãªã¹ããããŠããäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããã«ã¯ãä»®æ³ç°å¢ãã¢ã¯ãã£ãã«ããŠã次ã®ã³ãã³ããå®è¡ããŸãã
pip install -r requirements.txt
ããã«ãããrequirements.txt
ãã¡ã€ã«ãããã¹ãŠã®ããã±ãŒãžãšãã®æå®ãããããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããŸãã
ä»®æ³ç°å¢ã®äœ¿çšã«é¢ãããã¹ããã©ã¯ãã£ã¹
ä»®æ³ç°å¢ã䜿çšããéã«ã¯ã次ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããã
- åãããžã§ã¯ãã«ä»®æ³ç°å¢ãäœæããïŒããã«ãããåãããžã§ã¯ããç¬èªã®åé¢ãããäŸåé¢ä¿ã»ãããæã€ããã«ãªããŸãã
- èŠä»¶ãã¡ã€ã«ãææ°ã®ç¶æ
ã«ä¿ã€ïŒãããžã§ã¯ãã®çŸåšã®äŸåé¢ä¿ãåæ ããããã«ã
requirements.txt
ãã¡ã€ã«ã宿çã«æŽæ°ããŸãã - ããŒãžã§ã³ç®¡çã䜿çšããïŒä»®æ³ç°å¢ãã£ã¬ã¯ããªããããžã§ã¯ãã®
.gitignore
ãã¡ã€ã«ã«å«ããŠãããŒãžã§ã³ç®¡çã«ã³ããããããªãããã«ããŸããrequirements.txt
ãã¡ã€ã«ã®ã¿ãã³ãããããŸãã - ä»®æ³ç°å¢ã«äžè²«ããååãä»ããïŒæ··ä¹±ãé¿ããããã«ãä»®æ³ç°å¢ã«äžè²«ããåœåèŠåã䜿çšããŸããããšãã°ã
.venv
ãŸãã¯venv
ãšããååãä»ããããšãã§ããŸãã - ä»®æ³ç°å¢ãããŒãžã£ãŒã䜿çšããïŒè€æ°ã®ä»®æ³ç°å¢ã®ç®¡çãç°¡çŽ åããããã«ã
virtualenvwrapper
ãŸãã¯conda
ãªã©ã®ä»®æ³ç°å¢ãããŒãžã£ãŒã®äœ¿çšãæ€èšããŠãã ããã
ä»®æ³ç°å¢ãããŒãžã£ãŒ
virtualenv
ãšvenv
ã¯ä»®æ³ç°å¢ãäœæããããã®åªããããŒã«ã§ãããè€æ°ã®ãããžã§ã¯ããæ±ãå Žåã管çãé¢åã«ãªãå¯èœæ§ããããŸããä»®æ³ç°å¢ãããŒãžã£ãŒã¯ãä»®æ³ç°å¢ã管çããããã®è¿œå æ©èœãšå©äŸ¿æ§ãæäŸããŸãã
virtualenvwrapper
virtualenvwrapper
ã¯ãvirtualenv
ã®æ¡åŒµæ©èœã®ã»ããã§ãããä»®æ³ç°å¢ã®äœæã管çãããã³æäœã容æã«ããŸããä»®æ³ç°å¢ã®äœæãã¢ã¯ãã£ãåãéã¢ã¯ãã£ãåãåé€ãããã³å©çšå¯èœãªç°å¢ã®ãªã¹ã衚瀺ãè¡ãããã®ã³ãã³ããæäŸããŸãã
virtualenvwrapper
ãã€ã³ã¹ããŒã«ããã«ã¯ãpipã䜿çšããŸãã
pip install virtualenvwrapper
virtualenvwrapper
ã®èšå®ãšäœ¿ç𿹿³ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠç°ãªããŸããè©³çŽ°ãªæé ã«ã€ããŠã¯ãvirtualenvwrapper
ã®ããã¥ã¡ã³ããåç
§ããŠãã ããã
conda
conda
ã¯ããªãŒãã³ãœãŒã¹ã®ããã±ãŒãžãäŸåé¢ä¿ãããã³ç°å¢ç®¡çã·ã¹ãã ã§ããããŒã¿ãµã€ãšã³ã¹ãç§åŠèšç®ã§ãã䜿çšãããŸãããäžè¬çãªPythonéçºã«ã䜿çšã§ããŸããconda
ã䜿çšãããšãä»®æ³ç°å¢ãäœæããã³ç®¡çããããã±ãŒãžãã€ã³ã¹ããŒã«ããã³ç®¡çã§ããŸãã
conda
ãã€ã³ã¹ããŒã«ããã«ã¯ãAnaconda Webãµã€ãããAnacondaãŸãã¯MinicondaãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã
æ°ããcondaç°å¢ãäœæããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
conda create --name myenv python=3.9
ç°å¢ãã¢ã¯ãã£ãåããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
conda activate myenv
ç°å¢ãéã¢ã¯ãã£ãåããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
conda deactivate
Condaã¯ãäŸåé¢ä¿ãšç°å¢ã管çããããã®äžé£ã®å æ¬çãªããŒã«ãæäŸããŠãããè€éãªãããžã§ã¯ãã«äººæ°ã®ããéžæè¢ãšãªã£ãŠããŸãã
ã°ããŒãã«ãªèæ ®äºé ãšãã¹ããã©ã¯ãã£ã¹
ã°ããŒãã«ããŒã ã§äœæ¥ããå ŽåããããŸããŸãªå°åã«ã¢ããªã±ãŒã·ã§ã³ããããã€ããå Žåã¯ã次ã®èŠçŽ ãèæ ®ããŠãã ããã
- äžè²«ããPythonããŒãžã§ã³ïŒãã¹ãŠã®ããŒã ã¡ã³ããŒãåãPythonããŒãžã§ã³ã䜿çšããŠéçºããŠããããšã確èªããŸããããã«ãããçµ±åãšãããã€äžã«äºæããªãäºææ§ã®åé¡ãåé¿ã§ããŸããããšãã°ãæ¥æ¬ã®æ±äº¬ã®éçºããŒã ãšè±åœã®ãã³ãã³ã®å¥ã®ããŒã ã¯ãåäžã®PythonããŒãžã§ã³ã«åæããå¿ èŠããããŸãã
- æšæºåãããç°å¢ïŒDockerãŸãã¯Vagrantãªã©ã®ããŒã«ãä»®æ³ç°å¢ãšçµã¿åãããŠäœ¿çšããŠãããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã§äžè²«ããéçºããã³ãããã€ç°å¢ãäœæããŸããããã«ãããåºç€ãšãªãã·ã¹ãã ã«é¢ä¿ãªããã¢ããªã±ãŒã·ã§ã³ãæåŸ ã©ããã«åäœããããšãä¿èšŒãããŸããmacOSã§éçºãããã¢ããªã±ãŒã·ã§ã³ãLinuxãµãŒããŒã«ãããã€ããããšãæ³åããŠãã ãããDockerã䜿çšãããšãäžè²«ããåäœãä¿èšŒãããŸãã
- äŸåé¢ä¿ã®åºå®ïŒ
requirements.txt
ãã¡ã€ã«ã§æ£ç¢ºãªããŒãžã§ã³çªå·ã䜿çšããŸããããã«ãããå šå¡ããŸã£ããåãããŒãžã§ã³ã®äŸåé¢ä¿ã䜿çšããç°ãªãã©ã€ãã©ãªã®ããŒãžã§ã³ãåå ã§çºçããå¯èœæ§ã®ãããã°ã軜æžã§ããŸãã`requests>=2.0`ã§ã¯ãªãã`requests==2.28.1`ã䜿çšããŸãã - ã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ïŒããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindowsãmacOSãLinuxïŒã§ã¢ããªã±ãŒã·ã§ã³ããã¹ãããŠãéçºããã»ã¹ã®æ©ã段éã§ãã©ãããã©ãŒã åºæã®åé¡ãç¹å®ããŠè§£æ±ºããŸããã¯ã©ãŠãããŒã¹ã®CI / CDãã€ãã©ã€ã³ã¯ãããŸããŸãªãã©ãããã©ãŒã ã§ã®ãã¹ããèªååã§ããŸãã
- ã¿ã€ã ãŸãŒã³ïŒæéçå¶çŽã®ããããŒã¿ãæ±ãå Žåã¯ãäžè²«ããã¿ã€ã ãŸãŒã³ïŒUTCãªã©ïŒã䜿çšããã¿ã€ã ãŸãŒã³ã®å€æãé©åã«åŠçããŸããå°åã«ãã£ãŠç°ãªãå¯èœæ§ããããããããŒã«ã«ã¿ã€ã ãŸãŒã³ã«äŸåããããšã¯é¿ããŠãã ããã
- æåãšã³ã³ãŒãã£ã³ã°ïŒãã¹ãŠã®ããã¹ããã¡ã€ã«ïŒãœãŒã¹ã³ãŒããã¡ã€ã«ãšæ§æãã¡ã€ã«ãå«ãïŒã«UTF-8ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãåœéæåãé©åã«åŠçãããããã«ããŸãã
äžè¬çãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ä»®æ³ç°å¢ã䜿çšããéã«çºçããå¯èœæ§ã®ããäžè¬çãªåé¡ãšãã®è§£æ±ºçãæ¬¡ã«ç€ºããŸãã
- ã¢ã¯ãã£ããŒã·ã§ã³ã®åé¡ïŒä»®æ³ç°å¢ã®ã¢ã¯ãã£ãåã«åé¡ãããå Žåã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã·ã§ã«ã«æ£ããã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¯ãªããã䜿çšããŠããããšã確èªããŠãã ãããã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¯ãªãããžã®ãã¹ãå確èªããå®è¡å¯èœã§ããããšã確èªããŸãã
- ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã«é¢ããåé¡ïŒããã±ãŒãžã®ã€ã³ã¹ããŒã«ã«åé¡ãããå Žåã¯ãä»®æ³ç°å¢ãã¢ã¯ãã£ãåããæ£ããããŒãžã§ã³ã®pipã䜿çšããŠããããšã確èªããŠãã ãããpipãææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãããå¿ èŠãããå ŽåããããŸãã
- äŸåé¢ä¿ã®ç«¶åïŒäŸåé¢ä¿ã®ç«¶åãçºçããŠããå Žåã¯ã
pipdeptree
ãŸãã¯pip-tools
ã䜿çšããŠäŸåé¢ä¿ãåæããç«¶åããããã±ãŒãžãç¹å®ããŠã¿ãŠãã ãããç«¶åã解決ããããã«ãç¹å®ã®ããã±ãŒãžãã¢ããã°ã¬ãŒããŸãã¯ããŠã³ã°ã¬ãŒãããå¿ èŠãããå ŽåããããŸãã - ä»®æ³ç°å¢ã®ç ŽæïŒä»®æ³ç°å¢ãç Žæããå Žåã¯ãåé€ããŠæåããåäœæããŠã¿ãŠãã ããã
çµè«
ä»®æ³ç°å¢ã¯ãPythonéçºè
ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ã§ãããäŸåé¢ä¿ã®åé¢ãããŒãžã§ã³ç®¡çãããã³ãããžã§ã¯ãã®åçŸæ§ãæäŸããŸããvirtualenv
ãŸãã¯venv
ã䜿çšããããšã§ããããžã§ã¯ããäºãã«åé¢ãããã°ããŒãã«Pythonã€ã³ã¹ããŒã«ãã¯ãªãŒã³ãªç¶æ
ã«ä¿ãããããã«ããããšãã§ããŸããåãããžã§ã¯ãã®requirements.txt
ãã¡ã€ã«ãçæããŠãäŸåé¢ä¿ã®ç°¡åãªè€è£œã容æã«ããããšãå¿ããªãã§ãã ããããã®ã¬ã€ãã§æŠèª¬ãããŠãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãPythonéçºã¯ãŒã¯ãããŒãåçåããããå
ç¢ã§ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸããã°ããŒãã«ãªã³ã©ãã¬ãŒã·ã§ã³ã§ã¯ãæšæºåãããç°å¢ãšæ³šææ·±ãäŸåé¢ä¿ç®¡çãæéèŠã§ãã