ç°å¢
説æ
pip3ã®ã³ãã³ãã¯ã次ã®ãããªåçŽãªã³ãã³ããå«ããéåžžã«äœéã§å®è¡ãããŸãã
_pip3ãªã¹ã_
以åã¯1ã2ç§ããã£ãŠããŸããããä»ã§ã¯1åã»ã©ã§ãã
äºæ³ãããè¡å
åçŸããæ¹æ³
ãã£ãã·ã¥ãã£ã¬ã¯ããªãã¯ãªãŒã³ã¢ããããããšããŸããããæ©èœããŸããã§ããã
python3-pipããã±ãŒãžãåé€ããŠåã€ã³ã¹ããŒã«ããããšããŸããããæ©èœããŸããã§ããã
æè¿ã®Windows1019041ã¢ããããŒãã«ãªã³ã¯ãããŠãããã©ããã¯ããããŸããã
ã以åããšã¯äœãæããŠããã®ã§ããïŒ ãã®é床äœäžã¯ãpipã®ã¢ããã°ã¬ãŒããŸãã¯ã·ã¹ãã ã®ã¢ããã°ã¬ãŒããåå ã§çºçããŸããïŒ ãããã©ããããšããªãèµ·ãã£ãå Žåãããã¯ãããã®åé¡ã§ã¯ãªãå¯èœæ§ãéåžžã«é«ãã§ãããããããå¶åŸ¡ã§ããªãç¹å®ã®ãã·ã³ã§äœããèµ·ãã£ãŠããŸãã
ããããpipã®ã¢ããã°ã¬ãŒãã¯è¡ããŸããã§ããã Windows 10ã¯é »ç¹ã«æŽæ°ãè¡ããŸããããããWSL2å ã®pipã®ããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ããããç解ããããšã¯ã§ããŸããã
誰ããç§ã«ãã®åé¡ã远跡ããæ¹æ³ã«ã€ããŠã®æ¹åæ§ãæããŠãããããšãé¡ã£ãŠããŸãã çŸåšãpipã¯ãšã©ãŒã¡ãã»ãŒãžãåºåããªããããäœãèµ·ãã£ãŠããã®ããç¥ãæ¹æ³ã¯ãããŸããã
ãã§ã«ã€ã³ã¹ããŒã«ãããŠããããã±ãŒãžã®æ°ïŒã€ãŸãã pip list
ã®åºåïŒãå
±æã§ããŸããïŒ ããã¯ãåºååŠçã®åã«ã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ããã±ãŒãžã調ã¹ãããšããpipã®å
éšããžãã¯[1]ã«é¢é£ããŠããå¯èœæ§ããããŸãã
[1] pkg_resourcesã®ããŒãæã®WorkingSetæ§ç¯ãç§ãäœã«ã€ããŠè©±ããŠããã®ãçåã«æã£ãŠãã人ã®ããã«
ç§ãåãåé¡ã§ãã pip3 list
ã³ãã³ããå®è¡ããŸããããããã±ãŒãžãäžèŠ§è¡šç€ºããã®ã«çŽ10ç§ä»¥äžããããŸããã ä»ã®ãšãããåé¡ãåãé€ãpipenv
ã䜿çšããŠä»®æ³ç°å¢ãäœæããŸãã wsl2linuxãšwindowsã®éã§å®è¡å¯èœãã¡ã€ã«ãå
±æããã®ã劚ããŠããã®ã§ã¯ãªãããšæããŸãã åé¡ã®åå ã¯ããããŸãããïŒ
wsl2linuxãšwindowsã®éã§å®è¡å¯èœãã¡ã€ã«ãå ±æããã®ã劚ããŠããã®ã§ã¯ãªãããšæããŸã
ããã¯ãã£ãšããããèãããŸãã LinuxåŽã§Windowsãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ãããšãWSL2ã®ãã¡ã€ã«ã·ã¹ãã ã®ããã©ãŒãã³ã¹ã¯ã²ã©ããã®ã«ãªããŸãã pip3
ã³ãã³ãã«é¢é£ä»ããããŠããPythonã¯äœã§ããïŒ sys.path
ãæäŸã§ããŸããïŒ å¥ã®å Žæã§pip3
ãå®è¡ãããšãããã¯çºçããŸããïŒ å ŽæãLinuxãã¡ã€ã«ã·ã¹ãã ã«ãããWindowsåŽã«ãããã¯éèŠã§ããïŒ
Windows PowerShellã§åãpip3 list
ãå®è¡ãããšãããã«åé¡ãçºçããŸããã
['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/<user>/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/<user>/.local/share/virtualenvs/myproj-SiazyaGz/lib/python3.8/site-packages']
sysãã¹ãã°ããŒãã«ã«å€æŽãããå Žåã pip3
ãWindows1ã«å¹²æžããªãå¯èœæ§ããããŸãã ç§ã¯ãããè©ŠããŠããŸããïŒ
ããŒããã©ã®ãã£ã¬ã¯ããªãç°åžžã«èŠããŸããã ããŸããŸWindowsãã£ã¬ã¯ããªãããŠã³ãããŸãããïŒ ããšãã°ãããŒã ãã£ã¬ã¯ããªïŒãŸãã¯sys.path
ãªã¹ããããŠãããã®ïŒãWindowsãã£ã¬ã¯ããªã«ã·ã³ããªãã¯ãªã³ã¯ããŸããïŒ ãŸãã¯ã /mnt
äžã®ãã£ã¬ã¯ããªã§ã³ãã³ããå®è¡ããŸããïŒ
sys.path
ãªã¹ããããŠãããšã³ããªã®äžéšïŒç¹ã«~/.local/lib
ãã®ïŒãäžæçã«ç§»åããŠãäœããå€ãããã©ããã確èªããããšæããŸãã ãããã¯ãPythonã©ã³ã¿ã€ã ã«ããã€ãã®ãããã¡ã€ã©ãŒãæ¿å
¥ããŠãäœãé床ãäœäžãããŠããã®ããæ£ç¢ºã«ç¢ºèªããããšãã§ããŸãã åé¡ãåãåããããã«ã§ããããªãã¯ã¯ãããããããŸãã ããã¯ãç§ïŒãŸãã¯ããªãã®ãã·ã³ã«ç©ççã«ã¢ã¯ã»ã¹ã§ããªã人ïŒãèã空æ°ã«å¯ŸããŠãã©ãã«ã·ã¥ãŒãã£ã³ã°ãè©Šã¿ããããã¯ããã«äŸ¿å©ã§ãã
ç·šéïŒããã¯ã©ãããããããã£ã¹ãã¬ã€ã«ãªã³ã¯ãããŠããå¯èœæ§ããããŸããïŒ X11ãµãŒããŒãïŒMobaXtermã䜿çšããŠïŒèµ·åãããšãé床äœäžã¯ã»ãšãã©ãªããªããŸãïŒ0.5ç§ããããŸãïŒã ãã®åé¡ãèŠã€ããçç±ã¯ãmatplotlibãéåžžã«é ããããpipã䜿çšããŠåã€ã³ã¹ããŒã«ããããšããããã§ãã matplotlibã䜿çšããããã«Xtermãå®è¡ããå¿ èŠãããããšãå¿ããŸããã
ç§ããã®åé¡ã«ééããPythonã®sys.path
ããpiyushchauhan2011ãšåãåºåããããŸãã ããŒã ãã£ã¬ã¯ããªã«æ¬¡ã®ãããªWindowsãã£ã¬ã¯ããªãžã®ã·ã³ããªãã¯ãªã³ã¯ããããŸãtest -> /mnt/c/Users/<user>/Documents/<git_project_folder>/
ç§ã¯ãUNIXç°å¢ã§ã®ã¿å®è¡ã§ããããã°ã©ã ã«å¯ŸããŠçµæããã³ãããŒã¯ããå¿ èŠãããPythonããã±ãŒãžãéçºããŠããŸãã ç§ã¯åŽé«ãªãã¹ãã䜿çšããŠWindowsãã£ã¬ã¯ããªå ã®ãã¡ã€ã«ãç·šéããWSL2ã䜿çšããŠã·ã³ããªãã¯ãªã³ã¯ãä»ããŠãããã®ãã¡ã€ã«ã«å¯ŸããŠãã³ãããŒã¯ã³ãŒããå®è¡ããŸãã
é床ãèœãšããã«æ¬¡ã®ã³ãã³ããå®è¡ã§ããŸãïŒ check, show, config
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
pip3 list
å®è¡ãããšçµæãè¿ãããŸãããçŽ30ç§ããããŸãã
çŽ100åã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãããŠããŸãã
ç§ã¯æåããã«ä»¥äžãè©ŠããŸããpython3 -m pip --retries 2 --timeout 5 --no-cache-dir --isolated --verbose list
WSL2ãã¡ã€ã«ã·ã¹ãã å
ãšWindowsåŽã®äž¡æ¹ã§pipãå®è¡ããŠã¿ãŸããããããããåãé床äœäžãçºçããŠããŸãã
ç§ã¯sys.path
ãå€æŽããæåã®æ¹æ³ã100ïŒ
ã§ãããšã¯éããŸãããããããç§ã®è©Šã¿ã§ãã
sys.path
ã§å§ãŸãipython3ãèµ·åããŸããïŒ
'/usr/bin',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'',
'/home/<user>/.local/lib/python3.8/site-packages',
'/usr/local/lib/python3.8/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/lib/python3/dist-packages/IPython/extensions',
'/home/<user>/.ipython']
次ã®ããã«ããã¯ã¢ããããŸãbackup = sys.path.copy()
ãã®æç¹ã§ã run '/usr/bin/pip3' list
ã䜿çšããŠããé床ãäœäžããããšã確èªããŸããã
ãã ãããã®åŸsys.path = []
ãèšå®ããŠå床å®è¡ãããšã ModuleNotFoundError: No module named 'pyparsing'
ãŸãã ãã®çµæã¯ãå床å®è¡ãããã³ã«ç¹°ãè¿ãããŸãã ã ãïŒ sys.path = backup
ãèšå®ãããšã run '/usr/bin/pip3' list
å¥è·¡çã«æ©èœããŸãã
time
ã䜿çšããå Žåã®åºåïŒ
CPU times: user 12.2 ms, sys: 426 µs, total: 12.6 ms
Wall time: 11.8 ms
ãããã£ãŠãæããã«ãã¹ã«åé¡ããããŸãã
ãã®åŸã sys.path =[]
ãå床èšå®ã§ããŸããã run '/usr/bin/pip3' list
ã¯äœããã®çç±ã§åŒãç¶ãæ©èœããŸãã
ãããé¢é£ããŠãããã©ããã¯ããããŸããããç§ã¯ããã«ã€ããŠèšåãããšæããŸããïŒ
run
ã³ãã³ãã䜿çšããåŸãç§ã®sys.pathã¯æ¬¡ã®ããã«å
¥åãããŸãïŒç©ºã®ãªã¹ãã«èšå®ãããåŸïŒ
['/usr/share/python-wheels/idna-2.8-py2.py3-none-any.whl',
'/usr/share/python-wheels/distlib-0.3.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/msgpack-0.6.2-py2.py3-none-any.whl',
'/usr/share/python-wheels/lockfile-0.12.2-py2.py3-none-any.whl',
'/usr/share/python-wheels/pytoml-0.1.21-py2.py3-none-any.whl',
'/usr/share/python-wheels/retrying-1.3.3-py2.py3-none-any.whl',
'/usr/share/python-wheels/requests-2.22.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/setuptools-44.0.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl',
'/usr/share/python-wheels/chardet-3.0.4-py2.py3-none-any.whl',
'/usr/share/python-wheels/webencodings-0.5.1-py2.py3-none-any.whl',
'/usr/share/python-wheels/CacheControl-0.12.6-py2.py3-none-any.whl',
'/usr/share/python-wheels/ipaddr-2.2.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/certifi-2019.11.28-py2.py3-none-any.whl',
'/usr/share/python-wheels/urllib3-1.25.8-py2.py3-none-any.whl',
'/usr/share/python-wheels/wheel-0.34.2-py2.py3-none-any.whl',
'/usr/share/python-wheels/appdirs-1.4.3-py2.py3-none-any.whl',
'/usr/share/python-wheels/packaging-20.3-py2.py3-none-any.whl',
'/usr/share/python-wheels/html5lib-1.0.1-py2.py3-none-any.whl',
'/usr/share/python-wheels/six-1.14.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/pip-20.0.2-py2.py3-none-any.whl',
'/usr/share/python-wheels/colorama-0.4.3-py2.py3-none-any.whl',
'/usr/share/python-wheels/progress-1.5-py2.py3-none-any.whl',
'/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/pyparsing-2.4.6-py2.py3-none-any.whl',
'/usr/share/python-wheels/contextlib2-0.6.0-py2.py3-none-any.whl',
'/usr/share/python-wheels/distro-1.4.0-py2.py3-none-any.whl',
'/usr/bin',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'',
'/home/<user>/.local/lib/python3.8/site-packages',
'/usr/local/lib/python3.8/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/lib/python3/dist-packages/IPython/extensions',
'/home/<user>/.ipython']
sys.pathã空ã®ãªã¹ãã«èšå®ãããŠãããå ã®ãªã¹ããŸãã¯ãã®ãªã¹ãã«ãªã»ããããããŸã§ãé床ãäœäžããŸãã
ããã¯ã©ãããããããã£ã¹ãã¬ã€ã«ãªã³ã¯ãããŠããå¯èœæ§ããããŸããïŒ X11ãµãŒããŒãïŒMobaXtermã䜿çšããŠïŒèµ·åãããšãé床äœäžã¯ã»ãšãã©ãªããªããŸãïŒ0.5ç§ããããŸãïŒã ãã®åé¡ãèŠã€ããçç±ã¯ãmatplotlibãéåžžã«é ããããpipã䜿çšããŠåã€ã³ã¹ããŒã«ããããšããããã§ãã matplotlibã䜿çšããããã«Xtermãå®è¡ããå¿ èŠãããããšãå¿ããŸããã
å€åâŠïŒ å
šäœã®åé¡ã¯ç§ã«ã¯éåžžã«å¥åŠã§ãã ãããsys.path
åé¡ã§ããå Žåãpipã ãã§ãªãããã¹ãŠã®Pythonã€ã³ããŒãã§åãé床äœäžãçºçããŸãããïŒ ç§ã¯ããªãå°æããŠããŸãð
ããã«ã¡ã¯ãç§ã®ç°å¢ã¯æ¬¡ã®ãšããã§ãã
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Python 3.6.9
ãšpip 9.0.1
ã䜿çšãããšã command
ããšã«ïŒç¹ã«install
ïŒããããéåžžã«é
ãããšã確èªã§ããŸãã
ç§ã®pip3 list
ã¯
asn1crypto (0.24.0)
attrs (17.4.0)
Automat (0.6.0)
chardet (3.0.4)
configobj (5.0.6)
constantly (15.1.0)
cryptography (2.1.4)
distro-info (0.18ubuntu0.18.04.1)
hyperlink (17.3.1)
idna (2.6)
incremental (16.10.1)
keyring (10.6.0)
keyrings.alt (3.0)
netifaces (0.10.4)
pip (9.0.1)
pyasn1 (0.4.2)
pyasn1-modules (0.2.1)
pycrypto (2.6.1)
pygobject (3.26.1)
pyOpenSSL (17.5.0)
python-apt (1.6.5+ubuntu0.3)
python-debian (0.1.32)
pyxdg (0.25)
PyYAML (3.12)
SecretStorage (2.3.1)
service-identity (16.0.0)
setuptools (39.0.1)
six (1.11.0)
Twisted (17.9.0)
ufw (0.36)
unattended-upgrades (0.1)
wheel (0.30.0)
@MattiaFailla _temporary_ä¿®æ£ãå¿ èŠãªå Žåã¯ã MobaXterm ïŒãŸãã¯ä»ã®åçã®ãã®ïŒãªã©ã®X11ãµãŒããŒãå®è¡ããããšããå§ãããŸãã çç±ã¯ããããŸãããããã¹ãŠã®ã³ãã³ãã®é床äœäžã®åé¡ã¯ä¿®æ£ãããŸããã
@ngraymonã¯å¥åŠã§ããããã®äžæä¿®æ£ãè©ŠããŠã¿ãŸãã
ããããšãïŒ
è©Šãããããã®åé¡ãæŽæ°ããŸãã
åäœããŸã åãã§ããããšã確èªããããã«ãä»ãã§ãã¯ããŸããã
WSL2ã®Windowsã¿ãŒããã«å
ã§time pip3 list
ãå®è¡ããïŒ
MobaXtermãèµ·åããåãã¿ãŒããã«ã§time pip3 list
ãå®è¡ããåŸïŒ
@ngraymonããã«ã¡ã¯ã
åé¡ã解決ããŸããã次ã®æé ãè©ŠããŠãã ããã
@MattiaFailla
åé¡ã解決ããŠããã£ãã§ãã
ç§ã¯ããªãã®ææ¡ãè©ŠããŸããããããã¯åé¡ã解決ããŸããã§ããã
sudoã§pipãå®è¡ããŸãããã sudo apt install python3-pip
ã䜿çšããŠpip3ãã€ã³ã¹ããŒã«ããŸãããããããããã¯é¢ä¿ããããŸããïŒ
matplotlibã䜿çšããŠããããããŠããã®ã§ããšã«ããXãµãŒããŒãå¿
èŠãªã®ã§ãèªåã®ç¶æ³ã«æºè¶³ããŠããŸãã
@ngraymon python -m pipãå®è¡ããŠããããé ããã©ããã確èªã§ããŸããïŒ
ãããããªãããããŠããªããæ°ããååãªPythonããŒãžã§ã³ãæã£ãŠãããªãã python -X importtime -m pip -v
åºåãç§ãã¡ã«æäŸããŠãã ããã æžéã茞å
¥ã«ããå Žåãããã¯ç§ãã¡ãç¥ãã®ã«åœ¹ç«ã¡ãŸãã
@pradyunsg
ããã«ã¡ã¯ã
ä»åã¯ãã«ãã¡ãã»ãŒãžã§å¿çããpipã®ã³ãã³ããªãã§time python3 -m pip
ãå®è¡ããŸãã
ãã ãã time python3 -m pip list
ãå®è¡ãããš
ã¹ããŒããŠã³ã®åœ±é¿ãåããŠããªã/ãŸã 圱é¿ãåããŠããªãtime python3 -m pip check
å®è¡
ç§ã¯ä»¥äžãå®è¡ããŸããïŒ
python3 -X importtime -m pip -v
ãããŠãããout_1.txtãšããŠæ·»ä»ãpython3 -X importtime -m pip -v list
ãããŠãããout_list.txtãšããŠæ·»ä»ã
python3 -X importtime -m pip -v check
ãããŠãããout_check.txtãšããŠæ·»ä»ã
list
ã³ãã³ãã®åå ã¯keyring.core
ã§ãã
import time: 96023197 | 96029594 | keyring.core
ããŸãããã°ãããã¯åœ¹ã«ç«ã¡ãŸã:)
listã³ãã³ãã®åå ã¯keyring.coreã§ããïŒ
XãµãŒããŒãæ¯æŽãããšããå¥åŠãªããšãšçžãŸã£ãŠãããŒãªã³ã°ã¯GUIã«äŸåããŠããã®ã§ã¯ãªãããšæããŸããããã«ã¯ãXãèŠã€ããããšããŠãXããªããšçµè«ä»ãããããŸã§é 延ãåŒãèµ·ããã³ãŒãããããŸããïŒ
@pfmoore
pypiã®ããŒãžã«åºã¥ããšãD-BusãŸãã¯X11ãµãŒããŒã®ãããããå¿
èŠãªããã§ãã
python3 -m keyring --disable
ãšexport PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
ãè©ŠããŸããããã©ã¡ããåé¡ã解決ããŠããªãããã§ãã
jaraco / keyringïŒ434ã¯é¢é£ããŠããããã§ãããç¡å¹åã«é¢ããã¢ããã€ã¹ã¯ããã§ã«è©ŠããããšãèšèŒããããã¥ã¡ã³ãã瀺ããŠããŸãã
ãã®åé¡ãçµéšããŠãããæšæ¥ã«ãŒãã³sudo apt-get update && sudo apt-get upgrade
å®è¡ããåŸã«çºçãããšèããŠãã ããã ããã¯ééããªãããŒãªã³ã°ãšãã£ã¹ãã¬ã€ã«äœããã®åœ¢ã§é¢ä¿ããŠããŸãã X-Serverãå®è¡ãããšããä¿®æ£ã«å ããŠããã£ã¹ãã¬ã€ãWSL2ã®IPã¢ãã¬ã¹ãæã.bashrcãã¡ã€ã«ã«ããè¡ãåé€ããããšã§åé¡ãä¿®æ£ããããšãã§ããŸããã åé¡ã®è¡ã¯æ¬¡ã®ãšããã§ãã
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
ãã®è¡ã.bashrcããåé€ããWSL2ãåèµ·åãããšãpipã¯æåŸ ã©ããã«åäœããŸãã ããããå ã«é²ãæ¹æ³ãããããªãã®ã§ãããã誰ããæ£ããæ¹åã«åããŠãããã©ããã¯ããããããŸããã
ããŒãªã³ã°ãpip3 install -U keyring
æŽæ°ãã次ã®ããšã確èªããããšã§ãåé¡ãæä¹
çã«ä¿®æ£ã§ããããã§ãã
[backend]
default-keyring=keyring.backends.null.Keyring
ããŒãªã³ã°èšå®ãã¡ã€ã«ã®~/.config/python_keyring/keyringrc.cfg
èšå®ãããŠããŸã
çŽ æŽããããcjpellicciã®pip3 install -U keyring
ã®ææ¡ãããŸããããŸããã
ãŸãã ~/.local/share/python_keyring/keyringrc.cfg
ã~/.config/share/python_keyring/keyringrc.cfg
ã
pip3 list
å®è¡ã«ã¯ã90ç§ã§ã¯ãªã1/2ç§ããããŸãã
ããã¯ãXãµãŒããŒãå®è¡ãããŠããªãç¶æ
ã§ãã
äžèšã¯ç§ã«ã¯ããŸããããªãããã§ãã ã/ .local / share / python_keyring /ãŸãã¯ã/ .config / share / python_keyring /ã®ãããã«ãkeyringrc.cfgã¯ãããŸããã
ããã¯WSLUbuntuãšUbuntuã®éã§ç°ãªãåäœã§ããããïŒ
@peidaqi ãããŒãªã³ã°ãæŽæ°ããåŸã ~/.config/python_keyring/
ãã£ã¬ã¯ããªã«ãã®æ£ç¢ºãªååã§æ§æãã¡ã€ã«ãäœæããŠãããæ§æãã¡ã€ã«ã«ä»¥äžãè¿œå ããŠã¿ãŠãã ããã
[backend]
default-keyring=keyring.backends.null.Keyring
äžèšã®æé ã«åŸã£ãŠç°å¢å€æ°ãèšå®ããŠããŒãªã³ã°ãç¡å¹ã«ãããšã keyringrc.cfg
ãäœæãããå¯èœæ§ããããšæããŸãããééã£ãŠããå¯èœæ§ããããŸãã
ãšããã§ïŒç§ã¯WSL2ã§ãUbuntuãå®è¡ããŠããŸãã
ããã«ã¡ã¯ïŒ ïŒwsl2ã§ïŒå®è¡ããããšããpip install
ã³ãã³ããå«ãã pip list
å®è¡é床ãé
ãïŒçŽ1åïŒãšããã»ãŒåãåé¡ã«çŽé¢ããŠããŸããã ãã ããåäœããŸã£ããåããã©ããã¯ããããŸããïŒpip list _did_ã¯ããã±ãŒãžãåºåããŸãããã³ãã³ãã¯çŽ1ååŸã«è¿ãââããŸãïŒã
æçµçã«ç§ã®åé¡ã解決ããã®ã¯ããã§ããïŒ https ïŒ
å¥ã®å¯èœãªããŒã¿ãã€ã³ãã®è¿œå ïŒ
pip list
ã¯ãWSL2ã§ã¯çŽ90ç§ããããŸããã
DISPLAYç°å¢å€æ°ãWindowsãã¹ã¯ãããã§å®è¡ãããŠããXãµãŒããŒã«èšå®ããŠããŸããã DISPLAYç°å¢å€æ°ãã¯ãªã¢ããããXãµãŒããŒãèµ·åãããšãæéã0.343ç§ã«å€æŽãããŸããã
ããŒãªã³ã°ã
pip3 install -U keyring
æŽæ°ãã次ã®ããšã確èªããããšã§ãåé¡ãæä¹ çã«ä¿®æ£ã§ããããã§ãã
[backend]
default-keyring=keyring.backends.null.Keyring
ããŒãªã³ã°èšå®ãã¡ã€ã«ã®~/.config/python_keyring/keyringrc.cfg
èšå®ãããŠããŸã
ããã¯ç§ã«ãšã£ãŠã¯ããŸããããŸãã
Ubuntu 18.04
Python 3.6.9
ããã20.0.2
ããŒãªã³ã°ã
pip3 install -U keyring
æŽæ°ãã次ã®ããšã確èªããããšã§ãåé¡ãæä¹ çã«ä¿®æ£ã§ããããã§ãã
[backend]
default-keyring=keyring.backends.null.Keyring
ããŒãªã³ã°èšå®ãã¡ã€ã«ã®~/.config/python_keyring/keyringrc.cfg
èšå®ãããŠããŸãããã¯ç§ã«ãšã£ãŠã¯ããŸããããŸãã
Ubuntu 18.04
Python 3.6.9
ããã20.0.2
ããã確èªããããšãç§ã«ãšã£ãŠã¯ããŸããããŸãã
Ubuntu 18.04
Python 3.6.8
ããã20.2.3
ããã«ã¡ã¯çãã-ããŒãªã³ã°ãç¡å¹ã«ãããšãŠãŒã¶ãŒãã¹ããŒãã¢ããããããšã確èªããã¬ããŒãã¯ãã以äžå¿ èŠãããŸããã https://github.com/pypa/pip/issues/8719ãæäŒã£ãŠããã人ãããã°å¹žãã§ãã :)
ããã¯ãFedora 33ã®ãŠã§ã€ã©ã³ãã§å®è¡ããŠãããšãã«çºçããŸãïŒ ä»ã®ãã¹ãŠã®äººãWSLã«åå ããŠããããã«èŠããã®ã§ããããç§ãã³ã¡ã³ããšããŠã圹ç«ã€è¿œå ã§ããããšãé¡ã£ãŠããŸãã
ç°å¢
pip
ãšpip list
æéå®è¡ïŒ
pip 0.11s user 0.01s system 99% cpu 0.122 total
pip list 0.24s user 0.03s system 1% cpu 25.285 total
åçµäžã«pip
ã匷å¶çµäºãããšãã®ã¹ã¿ãã¯ãã¬ãŒã¹ïŒ
$ python -m pip uninstall jrnl
^CTraceback (most recent call last):
File "/usr/lib64/python3.9/site-packages/dbus/bus.py", line 177, in activate_name_owner
return self.get_name_owner(bus_name)
File "/usr/lib64/python3.9/site-packages/dbus/bus.py", line 361, in get_name_owner
return self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,
File "/usr/lib64/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking
reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: The name does not have an owner
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.9/site-packages/pip/__main__.py", line 26, in <module>
sys.exit(_main())
File "/usr/lib/python3.9/site-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/lib/python3.9/site-packages/pip/_internal/commands/__init__.py", line 104, in create_command
module = importlib.import_module(module_path)
File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/usr/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py", line 6, in <module>
from pip._internal.cli.req_command import SessionCommandMixin
File "/usr/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
from pip._internal.network.session import PipSession
File "/usr/lib/python3.9/site-packages/pip/_internal/network/session.py", line 26, in <module>
from pip._internal.network.auth import MultiDomainBasicAuth
File "/usr/lib/python3.9/site-packages/pip/_internal/network/auth.py", line 34, in <module>
import keyring # noqa
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/__init__.py", line 1, in <module>
from .core import (
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/core.py", line 186, in <module>
init_backend()
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/core.py", line 90, in init_backend
filter(limit, backend.get_all_keyring()),
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/util/__init__.py", line 22, in wrapper
func.always_returns = func(*args, **kwargs)
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/backend.py", line 214, in get_all_keyring
return list(rings)
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/util/__init__.py", line 33, in suppress_exceptions
for callable in callables:
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/util/properties.py", line 26, in __get__
return self.fget.__get__(None, owner)()
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/backend.py", line 68, in viable
cls.priority
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/util/properties.py", line 26, in __get__
return self.fget.__get__(None, owner)()
File "/home/daboross/.local/lib/python3.9/site-packages/keyring/backends/kwallet.py", line 50, in priority
bus.get_object(cls.bus_name, cls.object_path)
File "/usr/lib64/python3.9/site-packages/dbus/bus.py", line 241, in get_object
return self.ProxyObjectClass(self, bus_name, object_path,
File "/usr/lib64/python3.9/site-packages/dbus/proxies.py", line 250, in __init__
self._named_service = conn.activate_name_owner(bus_name)
File "/usr/lib64/python3.9/site-packages/dbus/bus.py", line 182, in activate_name_owner
self.start_service_by_name(bus_name)
File "/usr/lib64/python3.9/site-packages/dbus/bus.py", line 277, in start_service_by_name
return (True, self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,
File "/usr/lib64/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking
reply_message = self.send_message_with_reply_and_block(
File "/usr/lib64/python3.9/site-packages/dbus/exceptions.py", line 47, in __init__
def __init__(self, *args, **kwargs):
KeyboardInterrupt
ããã«å ±åããŠãããŠããããšãã ãããpipã®ããŒãªã³ã°çµ±åã®ããã«çºçããããšã¯ä»ãæããã§ãã ïŒ8687ã¯ãpipãããŒãªã³ã°å ã®ãã®ãæ€çŽ¢ããå¯èœæ§ãå€§å¹ ã«äœãããïŒ8719ã¯ããããªããã€ã³ã«ããŸãã
人ã
ã®æ
å ±ãšããŠãããŒãªã³ã°ã¢ãžã¥ãŒã«ãäœãã«ã€ã³ããŒããããšãã³ãŒããããŒãªã³ã°é¢æ°ãæ瀺çã«åŒã³åºããã©ããã«é¢ä¿ãªããé©åãªç°å¢ã§é·ãã¹ããŒã«ãçºçããå¯èœæ§ããããŸãã ããã¯ãã€ã³ããŒãã®ã¿ã€ãã³ã°ã§ç¢ºèªã§ããŸãïŒ time python3 -c "import keyring"
ã ç§ã®å Žåããªã¢ãŒãã§ãã°ã€ã³ããŠããŠã°ã©ãã£ã«ã«ãã°ã€ã³ã»ãã·ã§ã³ããªãFedora 32ãã·ã³ã§ã¯ãããã«25ç§ã»ã©ããããŸãã
ç§ã«ãšã£ãŠãããã®çŽæ¥ã®åå ã¯ãããŒãªã³ã°ãã€ã³ããŒãæã«ã³ãŒããå®è¡ããæçµçã«org.kde.kwalletd5ãžã®DBusæ¥ç¶ãè©Šã¿ããããéåžžã«ãã£ãããšå€±æããããšã§ãã åºæ¬çãªã³ãŒããè€è£œããïŒãããŠã¹ããŒã«ãåçŸããïŒããšãã§ããŸãïŒ
>>> import dbus
>>> from dbus.mainloop.glib import DBusGMainLoop
>>> bus = dbus.SessionBus(mainloop=DBusGMainLoop())
>>> bus.get_object('org.kde.kwalletd5', '/modules/kwalletd5')
ããŒãªã³ã°èªäœã§ã¯ããã®ã³ãŒãã¯keyring / backends / kwallet.pyã®priority()
ã¡ãœããã«ãããŸãã kwalletdããŸã å®è¡ãããŠããããèµ·åã§ããªãå Žåã¯ãDBusèªäœãŸãã¯PythonDBusã©ã€ãã©ãªå
ã§é·ãã¿ã€ã ã¢ãŠããå¿
èŠãªããã§ãã
ããã¯ãããŒãªã³ã°ã¢ãžã¥ãŒã«ã®ã€ã³ããŒãå šäœãæ¡ä»¶ä»ãã§ãããã³ãã³ãã©ã€ã³ãã©ã°ã®äœ¿çšã ãã§ãªããä»»æã®ã³ãã³ãã©ã€ã³ãã©ã°ã§ã²ãŒããããå¿ èŠãããããšãæå³ããŸãã
人ã ã®æ å ±ãšããŠãããŒãªã³ã°ã¢ãžã¥ãŒã«ãäœãã«ã€ã³ããŒããããšãé©åãªç°å¢ã§é·ãã¹ããŒã«ãçºçããå¯èœæ§ããããŸã
ãã®æ å ±ãããããšãã ããŒãªã³ã°ã¢ãžã¥ãŒã«èªäœã®å€§ããªåé¡ã®ããã«èãããŸã-ã€ã³ããŒãã¯å®äŸ¡ã§ããããšãæå³ãããŠããŸãã ããã§ãã°ãšããŠæèµ·ãããŸãããïŒ ç§ãã¡ã®ãããã®èšç»ã¯ããã®ææªã®è¡åãç·©åããã®ã«ååã ãšæããŸãããæçµçã«ã¯ããããä¿®æ£ããã®ã¯ããŒãªã³ã°ã®ã¡ã³ããã«ããã£ãŠãããšæããŸãã
誰ããããŒãªã³ã°ã«å¯Ÿãããã°ã¬ããŒãã«ãªã³ã¯ã§ããã°ãããã¯çŽ æŽãããããšã§ããããããã°ã圌ããäœãããŠããã®ããç£èŠããããã«èŠèãããããããŠãŒã¶ãŒã«ã¢ããã€ã¹ãæäŸã§ããŸãã
FWIWããããããããããŠãŒã¶ãŒã®åé¿çã¯ãããã«èšèŒãããŠããããã«ãããŒãªã³ã°ãç¡å¹ã«ããããšã§ãïŒ https ïŒ
ããã§ãã°ãšããŠæèµ·ãããŸãããïŒ ç§
ã¯ãïŒ https ïŒ
æãåèã«ãªãã³ã¡ã³ã
å¥ã®å¯èœãªããŒã¿ãã€ã³ãã®è¿œå ïŒ
pip list
ã¯ãWSL2ã§ã¯çŽ90ç§ããããŸãããDISPLAYç°å¢å€æ°ãWindowsãã¹ã¯ãããã§å®è¡ãããŠããXãµãŒããŒã«èšå®ããŠããŸããã DISPLAYç°å¢å€æ°ãã¯ãªã¢ããããXãµãŒããŒãèµ·åãããšãæéã0.343ç§ã«å€æŽãããŸããã