创建python3虚拟环境时,制表符完成(python3的默认设置)不再有效.为什么?
virtualenv -p /usr/bin/python3 --system-site-packages ~/venv3.site
. ~/venv3.site/bin/activate
如果没有--system-site-packages
,它也有同样的问题:没有标签完成.如果我在没有激活任何虚拟环境的情况下运行python3
,制表符完成就可以了.
创建python3虚拟环境时,制表符完成(python3的默认设置)不再有效.为什么?
virtualenv -p /usr/bin/python3 --system-site-packages ~/venv3.site
. ~/venv3.site/bin/activate
如果没有--system-site-packages
,它也有同样的问题:没有标签完成.如果我在没有激活任何虚拟环境的情况下运行python3
,制表符完成就可以了.
引用Carl Meyer在第this GitHub comment页的话,
是的,virtualenv实现的一个更丑陋的方面是,它必须有自己的站点模块副本,该副本用于所有virtualenv,而不管它们是用哪个版本的Python创建的.
问题出在$VIRTUAL_ENV/lib/python3.4/site.py
文件中,它没有设置tab completion.它不提供enablerlcompleter
功能.将其与Python 3分发的site.py文件进行比较.
如果您使用的是Python 3.3或更新版本,我建议使用pyvenv而不是virtualenv
.
python3 -mvenv ~/venv3.site
您可以做的另一件事是滚动自己的Python启动脚本,并在PYTHONSTARTUP
环境变量中引用它.把标签完成和其他启动调整放在那里.参见Mike Covington的答案,了解此类脚本的示例.