Python 3.xã«ã¯ãåã«ãconfigparserããšåŒã°ããconfigparserã®å€æŽã®ããã¯ããŒãããããŸãã æ°ããå°å ¥ãããããªã°ãããã€ã³ããŒãã§ã¯ãããã±ãŒãžãããã¯ããŒããäžæžãããå¯èœæ§ããããŸããããšãã°ãäž¡æ¹ãäžç·ã«äœ¿çšããããšã¯ã§ããŸããã
ãã®åé¡ã解決ããããã«ãconfigparserããã¯ããŒããpython-futureã®èŠä»¶ã®ãªã¹ãã«è¿œå ããããšãæ€èšããŠãã ããã
ãŸããããã¯ããŒããªããžããªã§ã¯ããããæ©èœããŠããªãããšããã§ã«å ±åãããŠããŸãïŒ https ïŒ//bitbucket.org/ambv/configparser/issue/8/configparser-import-broken-on-py27
åœé¢ã¯ãconfigparserã§python-futureãžã®äŸåãåé€ããŠæ©èœãããå¿ èŠããããŸããã
+1
ããäžè¬çã«ã¯ãpython-futureã¯ãã€ã³ã¹ããŒã«ãããŠããä»ã®ã¢ãžã¥ãŒã«IMOãã·ã£ããŠããã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããªãã§ãã ããã ä»ã®ã»ãšãã©ã¯åé¡ã«ãªãå¯èœæ§ãäœããããåœã®äŸåé¢ä¿ãè¿œå ããããããåã«ãããè¡ãæ¹ãæãŸããå ŽåããããŸãã
@ ambv ã @ Julian ïŒãã£ãŒãããã¯ãããããšãããããŸãã ãããä¿®æ£ãããã®ã§ãããæ£ããæ¹æ³ããŸã ããããŸããã ç§ãèŠãŠãããªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
configparser
ãåé€ãã代ããã«configparser
ããã±ãŒãžã®äœ¿çšãæšå¥šããããã«ããã¥ã¡ã³ããå€æŽããŸãã ããã¯çã«ããªã£ãŠãããããããŸãããã configparser
ãPy2.7ã®ConfigParser
ã®ããããã€ã³ä»£æ¿åã§ãªãéããããã§ã¯ãããŸããã çŸåšã import ConfigParser
ãimport configparser as ConfigParser
ã«çœ®ãæããåŸã configparser
ããã±ãŒãžãã€ã³ã¹ããŒã«ããŠPython 2.7.9ã§test_cfgparser.py
ãå®è¡ãããšã14åã®å€±æãš9åã®ãšã©ãŒãçºçããŸãã python-futureãšãã®åçŽãªconfigparser
ãšã€ãªã¢ã¹ãã€ã³ã¹ããŒã«ãããšããã¹ãŠåããã¹ãã«åæ ŒããŸããconfigparser
ãšã€ãªã¢ã¹ããã±ãŒãžãã€ã³ã¹ããŒã«ããããã«python-futureã§setup.py
ãå€æŽããŸãã ããã®æ¬ ç¹ã¯ãã€ã³ã¹ããŒã«ãããããã±ãŒãžãrequirements.txt
ã«ãªã¹ããããŠããé åºã«äŸåããããšã§ãã ããã«æªãããšã«ã pip
ã¯ãããã±ãŒãžãrequirements.txt
ã«è¡šç€ºãããé åºã§ããã±ãŒãžãã€ã³ã¹ããŒã«ããããšãä¿èšŒãããã®ã§ã¯ãªããšæããŸãã configparser
ãšfuture
ã®äž¡æ¹ããªã¹ããããŠããå Žåãããã«ããã pip
ã«ãã£ãŠã€ã³ã¹ããŒã«ãããããã±ãŒãžã®ã»ãããé決å®çã«ãªããŸããextras
æ©èœã䜿çšããŠã$ pip install future[without_configparser]
ãªã©ã®ã€ã³ã¹ããŒã«ãªãã·ã§ã³ããµããŒãããŸããconfigparser
ããã±ãŒãžãå€æŽããŠãPython 2.7.9ãã¹ãã¹ã€ãŒãã䜿çšãããšãã«åæ Œããããã«ã§ãããšæããŸããïŒ ããã«ãããçŸåšConfigParser
ã䜿çšããŠããPy2ã³ãŒãã®ã¹ã ãŒãºãªã¢ããã°ã¬ãŒããã¹ã«æšå¥šããèªä¿¡ãåŸãããŸãã
æéãçµã€ã«ã€ããŠãPython 2.xã䜿çšããªããææ°ã®ã¢ããã¹ããªãŒã APIïŒããã³æ©èœïŒã䜿çšããæ¹æ³ã§ãããããconfigparserããã¯ããŒããçŽæ¥äœ¿çšãã人ããŸããŸãå¢ããŠããŸãã
ãããã£ãŠãç§ã¯ããªãã®å€±æãããã¹ãã®é¢é£æ§ãæ¬åœã«ç解ããŠããŸããã å€ãAPIãå¿ èŠãªå Žåã¯ãå€ãã¢ãžã¥ãŒã«åã䜿çšããŸãã æ°ããAPIãå¿ èŠãªå Žåã¯ãæ°ããååã䜿çšããŸãã Python3ã®ä»£æ¿åãããå Žæã«2.xConfigParserãé 眮ããããšã¯ãã¯ãæå³ããããŸããã
Kali https://bugs.kali.org/view.php?id=3245ã§ããã«é¢ããã¬ããŒããå ¥æããå žåçãªKali Linuxã·ã¹ãã ã§ã¯ãäž¡æ¹ã®pythonãå¿ èŠãšããããã±ãŒãžãããã®ã§ããããä¿®æ£ããŠãããšäŸ¿å©ã§ãã -futureããã³python-configparserã åŸè ã¯ããã®ãã°ã®ããã«Python2.xã§äœ¿çšããŠãã人ã«ãšã£ãŠã¯å£ããŠããããšãé€ããŠã
èŠçŽãããšãïŒ1ïŒãå®è£ ããconfigparserã«é¢ãããã¹ããåé€ããå¿ èŠããããšæããŸãã ïŒ2ïŒDebianããã±ãŒãžã¯æå°éã®ç°å¢ã§æ§ç¯ãããŠãããsetup.pyã®å®è¡æã«python-configparserã䜿çšã§ããªããããåé¡ãããŸããã ïŒ3ïŒã¯å¯èœã§ãããããã¯python-futureã®APIãã€ã³ã¹ããŒã«æ¹æ³ã«ãã£ãŠç°ãªãããšãæå³ããŸãã ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯äžæ¹åã«ããã€ã³ã¹ããŒã«ã§ããªããããããã¯å®éã«ã¯è¯ãèãã§ã¯ãããŸããã
ããããšãïŒ cc @sbrun
ããšãã°ãçŸåšãFedoraã¯ããã¯ããŒããå©çšã§ããããã configparserã«ããããé©çšããã ãã§ãã
FWIWãç§ã¯çŸåšãããã¯ããŒãã«ããŒãžããå¿ èŠãããã¢ããã¹ããªãŒã ã®ä¿®æ£ãè¡ã£ãŠãããææ¥configparserããã¯ããŒã3.5.1ããªãªãŒã¹ããäºå®ã§ãã python-futureã«ã€ããŠããïŒ1ïŒãå®è£ ããå¿ èŠããããšæããŸãã
ã¿ãªããããæèŠããããšãããããŸãïŒ
v0.16ã®python-futureããconfigparser
ãåé€ããããšæããŸãã é²è¡äžã®ãã©ã³ãããããŸãïŒ httpsïŒ//github.com/PythonCharmers/python-future/tree/v0.16.xã
ConfigParser.read_dict
ãèªåã®ãã·ã³ã§åäœããªããªã£ãçç±ãç解ããããšããŠããã«æ¥ãŸããã
ç§ã䜿çšããŠããããã±ãŒãžã®1ã€ãpython-future
ïŒç¹ã«QGISã®äžéšïŒã«äŸåããŠéå§ãããããšãå€æããŸããããPython 2.7ã®ConfigParserã®ããŒãžã§ã³ãConfigParserã®å®å
šãªAPIãå®è£
ããŠããªãããããã®åé¡ã«ééããŸããPython3.xã§ã
ããã±ãŒãžã®python-future
ããŒãžã§ã³ãããã¯ããããšã§ããã解決ããŸããã
sudo chmod 000 /usr/lib/python2.7/dist-packages/configparser/
Flake8ã¯æè¿ã @ ambvãå¯å€§ã«ç¶æããconfigparserããã¯ããŒããžã®äŸåé¢ä¿ãè¿œå ããŸããã äžéšã®ãŠãŒã¶ãŒã¯ããã®ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŠãFlake8ã®æ¢åã®ããã¹ãããããææžåãããåäœãå£ããŸããã ããã¯ç§ãã¡ã«ãšã£ãŠåé¡ã§ãããFlake8ã«ããã¥ã¡ã³ããè¿œå ããŠã人ã ãåé¡ãç®ã«ããçç±ã説æããŸãã ãŠãŒã¶ãŒããã®ç ©ããããåé¿ã§ããããã«ãFutureã«ã€ããŠå ·äœçã«èª¬æããŸãã
@ sigmavirus24ã€ã¢ã³ãä»ã®ãšããã configparser
ããã¯ããŒãã«äŸåãã from backports import configparser
ãã©ãŒã ã䜿çšããããšã§ããããåé¿ã§ããŸãã ããã¯ã次ã®ãããªç¶æ³ã®ãããã¯ã解é€ããããã«ç¹å¥ã«å®è£
ãããŸãã:(
@ambvããããšãïŒ ç§ã¯ãããã§ããããšã«æ°ã¥ããŠããŸããã§ããã
configparser
ãåé€ããv0.16.0ããªãªãŒã¹ããŸããã ããã¥ã¡ã³ãã§ã¯ãLukaszã®ããã¯ããŒãã®äœ¿çšãæšå¥šããŠããŸãã çããããã£ãŒãããã¯ãããããšãïŒ
ããããšã@edschofieldïŒ
æãåèã«ãªãã³ã¡ã³ã
æéãçµã€ã«ã€ããŠãPython 2.xã䜿çšããªããææ°ã®ã¢ããã¹ããªãŒã APIïŒããã³æ©èœïŒã䜿çšããæ¹æ³ã§ãããããconfigparserããã¯ããŒããçŽæ¥äœ¿çšãã人ããŸããŸãå¢ããŠããŸãã
ãããã£ãŠãç§ã¯ããªãã®å€±æãããã¹ãã®é¢é£æ§ãæ¬åœã«ç解ããŠããŸããã å€ãAPIãå¿ èŠãªå Žåã¯ãå€ãã¢ãžã¥ãŒã«åã䜿çšããŸãã æ°ããAPIãå¿ èŠãªå Žåã¯ãæ°ããååã䜿çšããŸãã Python3ã®ä»£æ¿åãããå Žæã«2.xConfigParserãé 眮ããããšã¯ãã¯ãæå³ããããŸããã
Kali https://bugs.kali.org/view.php?id=3245ã§ããã«é¢ããã¬ããŒããå ¥æããå žåçãªKali Linuxã·ã¹ãã ã§ã¯ãäž¡æ¹ã®pythonãå¿ èŠãšããããã±ãŒãžãããã®ã§ããããä¿®æ£ããŠãããšäŸ¿å©ã§ãã -futureããã³python-configparserã åŸè ã¯ããã®ãã°ã®ããã«Python2.xã§äœ¿çšããŠãã人ã«ãšã£ãŠã¯å£ããŠããããšãé€ããŠã
èŠçŽãããšãïŒ1ïŒãå®è£ ããconfigparserã«é¢ãããã¹ããåé€ããå¿ èŠããããšæããŸãã ïŒ2ïŒDebianããã±ãŒãžã¯æå°éã®ç°å¢ã§æ§ç¯ãããŠãããsetup.pyã®å®è¡æã«python-configparserã䜿çšã§ããªããããåé¡ãããŸããã ïŒ3ïŒã¯å¯èœã§ãããããã¯python-futureã®APIãã€ã³ã¹ããŒã«æ¹æ³ã«ãã£ãŠç°ãªãããšãæå³ããŸãã ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯äžæ¹åã«ããã€ã³ã¹ããŒã«ã§ããªããããããã¯å®éã«ã¯è¯ãèãã§ã¯ãããŸããã
ããããšãïŒ cc @sbrun