ç·šéå¯èœã«ã€ã³ã¹ããŒã«ãããåå空éããã±ãŒãžãšå®æçã«ã€ã³ã¹ããŒã«ãããå¥ã®åå空éããã±ãŒãžã¯ãäžç·ã«ããŸãæ©èœããŸããã
ããã§åãåé¡:(
ãã®ãã°ããã¹ãããããã®ã³ãŒããæçš¿ããŸããïŒ http ïŒ
ããã§ã®åé¡ã®æ ¹æ¬ã¯ãsetuptoolsã«åå空éããã±ãŒãžãæ©èœãããããã®2ã€ã®ã¡ãœãããå«ãŸããŠããããšã§ãã __init__.py
ã¡ãœããïŒææžåãããŠããã人éã䜿çšã§ããŸãïŒãš...-nspkg.pth
ãã¡ã€ã«ã¡ãœããã§ãã --single-version-externally-managed
ïŒpipã䜿çšïŒã§ã®ã¿äœ¿çšãããŸãã 2ã€ã®æ¹æ³ã¯äºãã«äºææ§ããããŸããã
IRCã§mitsuhikoãä»ã®äººãšè©±ãåã£ãåŸãpipã®æè¯ã®ïŒéšåçãªïŒè§£æ±ºçã¯ããpip install -eãã«ãéçºã€ã³ã¹ããŒã«ãããããã±ãŒãžããšã«æšæºã®setuptools ... nspkg.pthãã¡ã€ã«ã®ä¿®æ£ããŒãžã§ã³ãè¿œå ãããããšã§ãã ã ïŒå¿ èŠãªå€æŽã¯ãsitedirã®ä»£ããã«develop egg-linkãã¹ã䜿çšããéçºã§ã€ã³ã¹ããŒã«ãããåå空éããã±ãŒãžã«ã¯init .pyãããããã init .pyã®ãã§ãã¯ãå®å šã«ã¹ãããããããšã§ãïŒã ããã¯ãpipãå°ãªããšãããèªäœãšäºææ§ãããããšãæå³ããŸãïŒpip-installedããã³pip-editable-installedåå空éããã±ãŒãžã¯äžç·ã«æ©èœããŸãïŒã Pip-installedããã³setuptools / distribute-installedåå空éããã±ãŒãžã¯äºææ§ããããŸããã
ç§ãæè¿ããã«åãŸããŸããã ããã«ãã£ãŠåŒãèµ·ããããå¥ã®åé¡ã¯ãåå空éããã±ãŒãžã«__init__.py
ãã€ã³ã¹ããŒã«ãããŠããªãããïŒãã®åå空éã«1ã€ã®ããã±ãŒãžããã€ã³ã¹ããŒã«ããŠãããã-single-version-externallymanagedã§ã€ã³ã¹ããŒã«ãããŠãããšä»®å®ïŒã§ãã noseã®ã¢ãžã¥ãŒã«æ€çŽ¢ãäžæããŸãã ãã¶ãããã¯éŒ»ã®ããã§ããããã£ã¬ã¯ããªã«__init__.py
ãå«ãŸããŠããªãå ŽåããããPythonããã±ãŒãžã§ã¯ãªããšäºæ³ããã®ã¯åççã ãšæããŸãã
pipã¯ã©ããããããnspkg.pthãå®å
šã«åŒ·å¶çµäºãã __init__.py
ãã€ã³ã¹ããŒã«ããå¿
èŠããããšæããŸãã ããã±ãŒãžèªäœãæ£ããèšèšãããŠããéãïŒã€ãŸããextend_path / declare_namespaceãé€ããŠ__init__.py
ã空ã§ããéãïŒãåé¡ã¯ãããŸããã --single-version-externally-managedã¯ãã·ã¹ãã ããã±ãŒãžã£ãŒã念é ã«çœ®ããŠèšèšãããŸããããããããpipã䜿çšããããšã¯ãããŸããã ã§ããããããŸãéªéã«ãªããã«ãã®åäœãå®å
šã«ç¡å¹ã«ããæ¹æ³ãããã®ã§ã¯ãªãããšæããŸãã
'--single-version-externally-managed'ããåãæ¿ããããã®+1ïŒãã®ãªãã·ã§ã³ã¯pipã®ãŠãŒã¹ã±ãŒã¹ããŸã£ãã察象ãšããŠããŸããã pipãeasy_installãšåããããããŸãã€ã³ã¹ããŒã«ã§ããªãå Žåããã®ç®çã¯äœã§ããïŒ
--single-version-externally-managed
å®å
šã«åãæ¿ããããšã¯èµ·ãããŸããã ãã©ããã€ã³ã¹ããŒã«ã¯æ©èœã§ãã åå空éããã±ãŒãžã®å Žåã«ã®ã¿ããããåãæ¿ããããšã¯ããããã®åé¡ãåé¿ããããã«ç§ãæ€èšããå¯èœæ§ã§ãã ç§ã¯ããã奜ãã§ã¯ãããŸããããsetuptools / distributeã«çµã¿èŸŒãŸããŠãã2çš®é¡ã®åå空éããã±ãŒãžãµããŒãã®éã«åºæã®éäºææ§ãããããšãèãããšãåªãããªãã·ã§ã³ã¯ãªãããã§ãã
--single-version-externally-managed
ãããããã®ãŠãŒã¹ã±ãŒã¹ã察象ãšããŠããªãããšèšãã®ã¯ãééã£ããã·ã³ãšèµ€ããã·ã³ã®éã®ã©ããã«ãããŸãã ãã®ãã©ã°ã¯ãeasy_install以å€ã®ããŒã«ã«ãã£ãŠç®¡çããããã©ãããªã·ã³ã°ã«ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ãèš±å¯ããããšãç®çãšããŠããŸãã ããããŸãã«pipãããã䜿çšããç®çã§ãã setuptoolsã®äœæè
ãå
ã
ïŒãããŠèª€ã£ãŠïŒã·ã¹ãã ããã±ãŒãžã£ãŒã ãããã®ãããªæ©èœã«èå³ããããšæã£ãŠãããšããäºå®ã¯é¢ä¿ãããŸããã
ããã§ã®ç Žæã¯ãsetuptoolsããã®ãã©ã°ãæã€åå空éããã±ãŒãžã«äœ¿çšããææ³ã«åºæã®ãã°ã§ããããã©ã°ãå ã æå³ãããŠãããªãŒãã£ãšã³ã¹ã§ããã·ã¹ãã ããã±ãŒãžã£ãŒã«ãã£ãŠäœ¿çšãããå Žåãšåãããã«ååšããŸãïŒã setup.pydevelopãã€ã³ã¹ããŒã«æžã¿ããã±ãŒãžããã³system-package-installedåå空éããã±ãŒãžïŒã
ç§ããã®ãã°ãçµéšããŠããŸãã ããã¯ã解決ã§ããªããã°ã®1ã€ã§ãããä»åŸãç¶ããšæããŸãã ãããããªãã
åå空éããã±ãŒãžãå«ãŸããŠããå Žåã«--single-version-externally-managed
ãåé¿ããããããåãå
¥ããŸããããã«ããããã®åé¡ã¯è§£æ±ºãããšæããŸãã çŸåšããã®ããããäœæããäºå®ã¯ãããŸããã
--single-version-externally-managed
ã䜿çšããªãããã«pip install
æž¡ãããšãã§ãããªãã·ã§ã³ã¯ãªãã§ããïŒ easy_installãšåãããã«ã ./pip/req.py:568
ããã¹ãŠã®ããã±ãŒãžãeggãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ãããããšãã³ã¡ã³ãã¢ãŠãããŠãã¹ãããŸãã site-packages
ããã©ããã«ã€ã³ã¹ããŒã«ãããããã±ãŒãžãšããã§ãªãããã±ãŒãžã®äž¡æ¹ãšæ··ãããªãããã«ãpipãšeasy_installã®äž¡æ¹ã䜿çšããå Žåã«ãããå®è¡ãããããšããããŸãã
ç§ã¯ãšã®åé¡ã衚瀺ãããŠããªã--egg
ããªããã¢ãŠãããããã®ãªãã·ã§ã³--single-version-externally-managed
ã
https://github.com/k4ml/pip/commit/93cd6b16207d2eba201a7fc3126624b616f5e6f9
ç§ãæ£ããæ¹åã«é²ãã§ããå Žåã誰ããã³ã¡ã³ãã§ããŸããïŒ ãããã³ãŒãããããã³ã°ããã®ã¯ãããåããŠãªã®ã§ã pip install --egg somepackages
ããã¹ãŠåäžã®egg dirã«ã€ã³ã¹ããŒã«ããããã«ããã®äžéšãæ°åéå£éèŠãããšã«åºã¥ããŠããŸãã
ç§ãæ£ããæ¹åã«é²ãã§ããå Žåã誰ããã³ã¡ã³ãã§ããŸããïŒ
ç§ã«ã¯è¯ãããã§ãããã ãã¹ããå¿
èŠã§ãã ãã¹ãã¯äž»ã«é«ã¬ãã«ã§ã
ScriptTestã䜿çšããçµ±åãã¹ãã¯ãã«åºã¥ããŠç°¡åã«èšè¿°ã§ããã¯ãã§ãã
æ¢åã®äŸã ãã®å Žåãã€ã³ã¹ããŒã«ããã¹ãããã ãã§ãã
ãµã³ãã«ããã±ãŒãžã¯ããã©ããã€ã³ã¹ããŒã«ã§ã¯ãªã.eggãã¡ã€ã«ã«ãªããŸãã
ãµã€ãããã±ãŒãžã ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ããããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ãããã¯ãŒã¯ã§ã¯ãããŸããïŒ tests/packages/FSPkg
ã¯ããããæ£åžžã«æ©èœããŸãã è¿œå ãã
tests/test_basic.py
ãžã®ãã¹ãã¯åé¡ãããŸããã
ããããšãïŒ
ãã«ãªã¯ãšã¹ã-httpsïŒ//github.com/pypa/pip/pull/541
ãŸããpip.confã§ãã®ãã©ã°ãèšå®ã§ããããã«ããããšãèããŠããŸãã ããªãã¯ããã«ã€ããŠã©ãæããŸããïŒ
ãŸããpip.confã§ãã®ãã©ã°ãèšå®ã§ããããã«ããããšãèããŠããŸãã ããªãã¯ããã«ã€ããŠã©ãæããŸããïŒ
ãã«ãªã¯ãšã¹ãã«ã€ããŠè©±ãåããŸãããã
1ã€ã®åé¿çãæäŸããããŒãžããããã«ãªã¯ãšã¹ãïŒ541ã ããããšã@ k4mlïŒ
泚æïŒãã®åé¡ãä¿®æ£ããããã«è¿œå ããã--egg
ãªãã·ã§ã³ã¯ã代æ¿ã®åé¿çãæäŸãããã«åé€ãããå¯èœæ§ããããŸãã ïŒ1749ã®èª¬æãåç
§ããŠãã ãã
ãã®åé¡ãå®éã«åçŸããããã®ã¹ã¯ãªããã¯æ¬¡ã®ãšããã§ã
ç§ã¯--eggãœãªã¥ãŒã·ã§ã³ã®å€§ãã¡ã³ã§ã¯ãããŸããããããã«ã¯ããã»ã©é¢åãªåé¿çãå¿ èŠã§ãã
åé¿çããªããšãéçºäžã«--editableãäžåºŠäœ¿çšããŠããç·šéããŠãã¹ãããããšã¯ã§ããŸããã ã³ãŒããä¿åãããã³ã«ã pip install -I --no-deps .
ãå®è¡ããå¿
èŠããããŸããããã¯éåžžã«å€ããå£ãããããã®ã§ãïŒèªãã§ãã ããïŒæã
å¿ããŸãïŒã
ãã®åé¡å šäœãçŸããæ¹æ³ã«é¢ããåé¡ã®äžéšã¯ããããæ²é»ããŠãããšããããšã§ãã ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ãããŠããŠãpipãããã«ãããšéç¥ããŠããã¢ãžã¥ãŒã«ãã€ã³ããŒãããããšã¯ã§ããŸããã
åå空éå ã®ç·šéäžå¯èœãªããã±ãŒãžããã§ã«ã€ã³ã¹ããŒã«ãããŠããåå空éã®äžéšãšããŠç·šéå¯èœãªããã±ãŒãžãã€ã³ã¹ããŒã«ããããšãããšãpipã«æå¥ãèšãã ãã§ååããªã¹ãããã«ãªããŸãã ãŸãã¯ãåå空éå ã®ç·šéå¯èœãªããã±ãŒãžããã§ã«ã€ã³ã¹ããŒã«ãããŠããåå空éã®äžéšã§ããç·šéäžå¯èœãªããã±ãŒãžãã€ã³ã¹ããŒã«ããããšããå Žåã¯ã代ããã«æå¥ãèšããŸãã
å¥ã®ãªãã·ã§ã³ãšããŠãå®éã«åå空éããã±ãŒãžãšç·šéå¯èœãªã€ã³ã¹ããŒã«ãåžžã«æ©èœããããå Žåã¯ãåå空éããã±ãŒãžãç·šéå¯èœãšããŠã€ã³ã¹ããŒã«ãããŠããå Žåãpipã¯ãã®åå空éå ã®ä»ã®ãã¹ãŠã®ããã±ãŒãžãç®çã®ããã±ãŒãžãšäžç·ã«ç·šéå¯èœãšããŠåç·šæã§ããŸãã
setuptoolshttps ïŒ //bitbucket.org/pypa/setuptools/issue/250/develop-and-install-single-versionã§ãã®åé¡ãä¿®æ£ããããã®2ã€ã®ææ¡ãæåºããŸãã
ãããã£ã³ã°
pkg_resourcesãã€ã³ããŒãããŸãã pkg_resources.fixup_namespace_packagesïŒ ''ïŒ
site-packagesã®.pthãã¡ã€ã«ã§ã¯ãpip install-eãã€ã³ã¹ããŒã«ããããã®ãæ£ããæ©èœãããã®ã«ååãªããã§ãã
ããã¯ãäž¡æ¹ãç·šéå¯èœãšããŠã€ã³ã¹ããŒã«ãããŠãããåããããåå空éãæã€2ã€ã®ããã±ãŒãžã«ã圱é¿ããŸãã 2çªç®ã®ããã±ãŒãžã®ã€ã³ã¹ããŒã«ãå£ããŠããŸãã
ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«ã°ããŒãã«åå空éã䜿çšããŠããããããã®åé¡ã¯å°ãé£ããã§ãïŒ+ setuptoolsããã€ãŒã«ããµããŒãããŠããªããšããåé¡ãããã¯Windowsãããã€ã¡ã³ããã©ãããã©ãŒã ã«ã³ã³ãã€ã©ããªãããã«å¿ èŠã§ãïŒã ãŸããPython 3.4ã䜿çšããã»ããã¢ããã§ã¯ãæšå¥šããããã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã倱æããããã§ãã
pip install -e
ãç·šéå¯èœãªãããžã§ã¯ãã«å¯ŸããŠsetup.py develop
ãå®è¡ããããšã«æ°ä»ããåŸãsetuptoolsããã·ãŒãžã£ã«ããã¯ãã*ãpthãã¡ã€ã«ãäœæããŸããããã®ãã¡ã€ã«ã¯ãPythonããã»ã¹æã«åå空éããã±ãŒãžããå°å
¥ãããŸããéå§ããŸãã ããã«ãããsetuptools18ãšpip7.1.0ã䜿çšããéã®åé¡ã解決ãããŸãã
ãããå®çŸããæ¹æ³ã瀺ãsetup.pyãã¡ã€ã«ã®äŸã¯ã次ã®å Žæã«ãããŸãã
https://gist.github.com/cbrand/a1624ac3e9c81ce45fcb
ãããä»ã®äººã«ã圹ç«ã€ããšãé¡ã£ãŠããŸãã
ä»æ¥ãããã«ééãããã«ãã¢ãŠãããvirtualenv + pipã«åãæ¿ããã®ã劚ããŠããŸãã
åé¡ã瀺ãå°ããªãã¢ãäœæããŸããã ãã¹ãããã«ã¯ã.tar.gzã解åãããã®äžã§{{run-me}}ã¹ã¯ãªãããå®è¡ããŸãã ä¿®æ£ããã¹ããããšãã«åœ¹ç«ã€å ŽåããããŸãã
ç§ããã®åé¡ã«ã¶ã€ãã£ãŠããŸãã
ç解ããããšããŠãããšãã«ã httpsïŒ //github.com/pypa/pip/issues/3#issuecomment -1659959ã§@carljmã«ãã£ãŠææ¡ããã解決çã«åºããããŸãããã€ãŸãã_have "pip install-e"ãæšæºã®ä¿®æ£ããŒãžã§ã³ãè¿œå ããŸããéçºã«ã€ã³ã¹ããŒã«ãããåpackage_ã®setuptools ... nspkg.pthãã¡ã€ã«ã
ç§ã¯ãã®ã¢ãããŒããæåã§è©ŠããŸããããããŸãããããã§ãã ïŒ3160ã§èª¬æãããŠããããã«ãåå空éããã±ãŒãžãæ¬ èœããŠããæµ ããœãŒã¹ããªãŒã®åé¡ãåæã«è§£æ±ºããããã§ãã
ããã§ããã®ã¢ãããŒãããŸã æå¹ã§ãããšèãããããã©ããããããå®è£ ããè©Šã¿ããã£ããã©ããããããŠããã«å¯Ÿããããããèæ ®ããããã©ããçåã«æããŸããïŒ
ããã§...ãããè¿ãå°æ¥ä¿®æ£ããããšããåžæã¯ãããŸãããïŒ
pkg_resources.get_distribution()
å¯äœçšã«ãããã€ã³ããŒããæ©èœããŸãã ããã¯ãPythonã·ã§ã«ã倱æãããšãã«ããšã³ããªãã€ã³ããããŒãããã³ãŒããæ£ããæ©èœãããšãã«çºèŠãããŸããã
ããã¯ãipythonã·ã§ã«ãããã±ãŒãžã®ã€ã³ããŒãã«åé¡ããªãçç±ã説æããŠããå¯èœæ§ããããŸãã
ãã®ãã°ããŸã éããŠããŠã5幎çµã£ãŠãæ確ãªåé¿çããªãããšã«é©ããŠããŸãã
ãã¬ãŒã ã¯ãŒã¯ã1ã€ã®çµ±åããããã¬ãŒã ã¯ãŒã¯ã«ãŸãšããã®ãä»äºã®å Žåãpipã¯ä»äºãç¡é§ã«ããŸãã ãã®ãã°ã®ãããæ£çŽãªãšãããã©ã®ããã«äœæ¥ãé²ããã®ãããããŸããã
ããã¯ãäž»ã«ãã©ã³ãã£ã¢ãè¡ã£ããããžã§ã¯ãã§åé¡ãä¿®æ£ããã®ã¯é£ããã§ããã
ãããããããæ£ããè¡ãããšãã§ããããã«ãsetuptoolsã«å¿
èŠãªãµããŒããèªç±ã«è¿œå ããŠãã ãã
ãã©ã³ãã³Githubã®[email protected]æžã蟌ã¿ïŒ
ãã®ãã°ããŸã éããŠããŠã5幎çµã£ãŠãæ確ãªåé¿çããªãããšã«é©ããŠããŸãã
ãããããã¯æ®å¿µã§ãã
ããªãã®ä»äºããã¬ãŒã ã¯ãŒã¯ã1ã€ã®çµ±åããããã¬ãŒã ã¯ãŒã¯ã«ãŸãšããããšã§ããå Žåã
ãããã¯ããªãã®ä»äºãã²ã©ãããŸãã æ£çŽãªãšãããã©ã®ããã«é²ããã°ããã®ãããããŸãã
ãã®ãã°ã«ããç§ã®ä»äºã
ç§ã¯æè¿ãäžèšã®fixup_namespace_packagesïŒ ''ïŒããã¯ãé©çšããŸãã
åäœããŠããããã§ãïŒvenvã®ãµã€ãããã±ãŒãžå
ã«z.pth
ãäœæããŸãã
import pkg_resources; pkg_resources.fixup_namespace_packages('')
ã ããå«ãŸããŠããŸã
è©ŠããŠã¿ã䟡å€ããããç§èŠã
ããã§ããã«å¥ã®ãã³ãïŒ
ãã¹ãŠã®éªšé«ããã±ãŒãžãåå空éãå©çšãïŒäžéšã®ããã±ãŒãžã¯æ倧4ã€ãŸãã¯5ã€ã«ãªããŸãïŒããã®ç¹å®ã®åé¡ã¯ãæ°ãããŠãŒã¶ãŒãéçºããŒã«ãã»ããã¢ããããã®ãæ¯æŽããããšã«é¢ããŠã¯ãç§ã®ååšã®å°ãæ©ã¿ã®çš®ã§ããã ã ç§ã¯ããã䜿ã£ãŠ60åã®ããã±ãŒãžãæ¥ãããããå±ã«ããŠããŸãã entry_points
ããŒããèå³æ·±ããã®ã§ããåå空éã«å¯äžããäºå®äžãã¹ãŠã®ããã±ãŒãžãã entry_points
ãå¯äžããããã§ãã
pip
ã¢ãããŒãã¯ãç§ã®çµéšã§ã¯ãåå空éã§é£æºãã_every_ããã±ãŒãžããã£ã¹ã¯ããã€ã³ã¹ããŒã«ãããç·šéå¯èœã§ããå Žåã«ã®ã¿æ©èœããŸãã 1ã€ã®ããã±ãŒãžãpipãä»ããŠç·šéäžå¯èœã«ã€ã³ã¹ããŒã«ãããŠããå Žåã糞ã®ããŒã«å
šäœã解ãå§ããæ°ãããŠãŒã¶ãŒã«ãšã£ãŠéåžžã«éãçç¶ãçºçããŸãã ïŒæç¶çã«ã€ã³ããŒãå¯èœãªã¢ãžã¥ãŒã«ãªã©ã芪åå空éãã€ã³ããŒãããŠnamespace.__path___
ãæ€èšŒããäžè¬çãªãµããã£ãã§ãã¯ã«ããããã¹ãã§åå ã®ç Žæããããã±ãŒãžãè¿
éã«ç¹å®ãããŸãããïŒé©åã«pipã€ã³ã¹ããŒã«ãããããã±ãŒãžãšçŽç²ãªsetup.py develop
'dãæ··åãããã ãããœãŒã¹ã®ãã®ïŒpipãåé¿ããïŒã¯æ©èœããŠããããã«èŠããŸãã
ãŸããåäžã®åå空éæäŸããã±ãŒãžã3ã€ã®ç°ãªãæ¹æ³ã§ãå Žåã«ãã£ãŠã¯ãã¹ãŠåæã«ã€ã³ã¹ããŒã«ã§ãããšããå¥åŠãªç¶æ³ã«é¥ãããšãããããã§ãã ïŒ pip uninstall
ç¹°ãè¿ãåŒã³åºããšããããããããå€ãã®ãã¡ã€ã«ãèŠã€ããã®ã¯ãæ®å¿µãªããšã§ãããèŠãã®ã楜ããã§ããïŒ pip install -e
ã䜿çšããå Žåã®äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ããäžè²«æ§ããªãããã§ãã ã»ãšãã©ã®å Žåãé©åã«ã¢ã³ããã¯ãããåå空éïŒã€ã³ã¹ããŒã«æžã¿ïŒãpth-linkãã¡ã€ã«ïŒã€ã³ã¹ããŒã«æžã¿ç·šéå¯èœïŒã«ãªããããå Žåã«ã¯ã zip_safe
ã«ãããããããzip圢åŒã®.egg
ã€ã³ã¹ããŒã«ã§ããŸããã zip_safe
ãšããFalse
ãã®äŸåããã±ãŒãžãªãã§.egg
ã¯ãPyPIäžã«æäŸãããŠãããã£ã¹ããªãã¥ãŒã·ã§ã³ã
åå空éã®åé¡ã«å¯Ÿãããã©ã¹ãã¬ãŒã·ã§ã³ã¯ãä»®æ³ç°å¢ãæåããããçŽãããã«4åç®ã«ããã¯ãããåŸã«ããŒã¯ã«éããŸãã ;ïŒ
解決çã§ã¯ãããŸããããããã€ãã¡ã¢ãæ®ããŸããã ãç·šéå¯èœãªãããã±ãŒãžãåå空éä»ãããã±ãŒãžãããã³éåžžã®ããã±ãŒãžãæ··åšãããå Žåãbuildout + mr.developerã䜿çšããæ¹ã幞éã§ãã
@lelitãèšåããæ©èœããããã§ãããäžéšã®ããã±ãŒãž/ãã«ããç ŽæããŸãã
pipã€ã³ã¹ããŒã«ãšç·šéå¯èœã¢ãŒãã§éãã åŸã @ carljmãšåãã¢ã€ãã¢ã
ããã¯ãPEP420ãå®è£ ãããæ°ããããŒãžã§ã³ã®Pythonã§ããŸã åé¡ã§ããïŒ ïŒèªãã§ãã ããïŒPythonã®æ°ããããŒãžã§ã³ã«åãæ¿ããã®ã«åœ¹ç«ã¡ãŸããïŒïŒ
PEP420ã¹ã¿ã€ã«ã䜿çšãããšãç·šéå¯èœã¢ãŒãã§äœåºŠãå¹æçã«åœ¹ç«ã¡ãŸããã
æ®å¿µãªãããç¬èªã®äžå
·åããããŸããããšãã°ãsetuptoolsã®find_packages
ã¯ããããµããŒãããŠããªããããæ°ããããã±ãŒãžã«ã¯æ¬¡ã®ããã¯ãå«ãŸããŠããŸãã
- packages=find_packages('src'),
+ packages=['toplevel.child.' + package
+ for package in find_packages('src/toplevel/child/')],
ç·šéå¯èœãªãã¹ãŠã®ããã±ãŒãžã«-nspkg.pthãè¿œå ããããšãå®è£ ãã人ã¯ããªãããã§ãã
ãã®æ©èœã®ãµããŒããè¿œå ãã Python3.5以éã®PEP-420ããã±ãŒãžãšå ±åãã
èå³ã®ãã人ã®ããã«ãåå空éããã±ãŒãžãpip install
ã pip install -e
ã python setup.py install
ãããã³python setup.py develop
ã©ã®ããã«æ©èœãããã網çŸ
ãããªã¹ãã次ã«ç€ºããŸãã
https://github.com/jonparrott/namespace-pkg-tests/blob/master/table.md
tl; drïŒåå空éå
ã®ä»ã®ãã¹ãŠã®ããã±ãŒãžãpip
ã䜿çšããŠã€ã³ã¹ããŒã«ãããŠããéãã pip install -e
ãšpython setup.py develop
ã䜿çšã§ããŸãã
ãã®åé¡ã解決ããŸãã setuptools 31ã§åçŸã¹ã¯ãªããã®ãããä¿®æ£ãããããã§ããããããè¶ ãããšãpipã§ã§ããããšã¯äœããããŸããã
@jonparrott
https://github.com/jonparrott/namespace-pkg-tests/blob/master/table.mdã§çµæãååŸããããã«äœ¿çšãããpipãšsetuptoolsã®ããŒãžã§ã³ã¯äœã§ããïŒ
@dstufftããããä¿®æ£ãããŠããããšãæè¬ããŸããã蚌æ ãšããŠ@jonparrottã®äºææ§ããŒãã«ãåå®è¡ããŠ
@jonparrottã®äŸã§ã¯ã倱æããã±ãŒã¹ã¯ã python setup.py install
çŽæ¥äœ¿çšããïŒäºæ³ãããPython2ã§ã®PEP420ã®å€±æãèŠçŽã§ããŸããããã¯ãpipãé¢äžããŠããªãå Žåã§ã倱æããŸãããŸã£ããïŒ python setup.py install
+ python setup.py develop
ïŒã
ãã®ãã±ããã¯ã pip install .
ãšpip install -e
ãŸãã¯python setup.py develop
çµã¿åããçš
@jonparrottã«ãã£ãŠãã§ã«æçš¿ãããã°ã©ãã¯ããã®ãã±ããã解決ãããããšã瀺ããŠããŸããããã«æ®ã£ãŠããåé¡ã¯ãpipã§ã¯ãªãpython setup.py install
åé¡ã§ãã
ãã¹ããåå®è¡ãããšãããæåã«å®è¡ãããã®ãšãã¹ãŠåãã§ãã @dstufftã®è©äŸ¡ã«åæããŸã
@ piotr-dobrogostãã¹ãã§ã¯ãäž¡æ¹ã®ææ°ããŒãžã§ã³ã䜿çšããŸãã ãã®èšäºã®å·çæç¹ã§ã¯ãpip9.0.1ãšsetuptools34.3.2ã§ãã
æãåèã«ãªãã³ã¡ã³ã
èå³ã®ãã人ã®ããã«ãåå空éããã±ãŒãžã
pip install
ãpip install -e
ãpython setup.py install
ãããã³python setup.py develop
ã©ã®ããã«æ©èœããããç¶²çŸ ãããªã¹ãã次ã«ç€ºããŸããhttps://github.com/jonparrott/namespace-pkg-tests/blob/master/table.md
tl; drïŒåå空éå ã®ä»ã®ãã¹ãŠã®ããã±ãŒãžã
pip
ã䜿çšããŠã€ã³ã¹ããŒã«ãããŠããéããpip install -e
ãšpython setup.py develop
ã䜿çšã§ããŸãã