Почему virtualenv эффективно отключает заполнение вкладки Python 3?
Когда я создаю python3 virtual-env, выполнение табуляции (по умолчанию с python3) больше не работает. Почему это?
virtualenv -p /usr/bin/python3 --system-site-packages ~/venv3.site . ~/venv3.site/bin/activate
Без --system-site-packages
у него такая же проблема: нет завершения табуляции. Если я запустил python3
без активации виртуального env, будет выполнено выполнение табуляции.
- Используя кортеж из df.itertuples (), как я могу получить значения столбцов для каждого элемента кортежа при условии?
- Не удалось получить сообщения gmail из любой папки, кроме папки «Входящие» (проблема Python3)
- ttk.Treeview – Невозможно изменить высоту строки
- PYTHON, в чем разница между eval и int
- Shelve: Невозможно рассортировать <class 'method'>: поиск атрибутов builtins.method failed
Цитируя Карла Мейера в этом комментарии GitHub ,
Да, один из уродливых аспектов реализации virtualenv заключается в том, что у него должна быть своя собственная копия модуля сайта, которая используется для всех virtualenvs независимо от того, с какой версией Python они создаются.
Проблема заключается в $VIRTUAL_ENV/lib/python3.4/site.py
, который не $VIRTUAL_ENV/lib/python3.4/site.py
завершение табуляции. Он не обеспечивает функцию enablerlcompleter
. Сравните его с файлом site.py, распространяемым с помощью Python 3.
Если вы используете Python 3.3 или новее, я советую pyvenv вместо virtualenv
.
python3 -mvenv ~/venv3.site
Еще одна вещь, которую вы можете сделать, – это PYTHONSTARTUP
собственный сценарий запуска Python и обратиться к нему в переменной среды PYTHONSTARTUP
. Поместите вкладку и другие настройки загрузки. См. Ответ Майка Ковингтона на пример такого сценария.
Вот как я получил свое завершение табуляции:
Добавлено следующее: ~/.pythonrc.py
:
try: import readline except ImportError: print("Module readline not available.") else: import rlcompleter readline.parse_and_bind("tab: complete")
Добавлено следующее в ~/.bash_profile
:
export PYTHONSTARTUP=$HOME/.pythonrc.py
Я попал в подобную ситуацию. Это может быть вызвано другой причиной. Но я просто хочу сохранить его здесь, чтобы другие люди не провели еще один день, чтобы отлаживать это.
Я использую Ubuntu 16.04 LTS, Python 3.5.2 с pyvenv, Virtualenv 15.1.0. Я все время получал проблему « tab & then terminal missing ». В некоторых пакетных файлах, которые я использовал «source», у меня был «set -e». По-видимому, когда вы делаете «set -e» в этом сеансе терминала, автозаполнение завершает это окно терминала. Удалите «set -e» из этих пакетных файлов, проблема была решена.
- Только Pylint Глобальная оценка
- График динамического изменения графика с использованием matplotlib в Jupyter Notebook
- Цикл с while на python
- regex для удаления пробелов в csv-файле с кавычками для разметки текста?
- Как переносить функции, перегруженные по типу?
- Почему Python eval () отклоняет эту многострочную строку и как я могу ее исправить?
- Динамический импорт + относительный импорт в Python 3
- Есть ли потоковый модуль регулярных выражений для Python?
- Web Crawler Чтобы получить ссылки с нового сайта
- Типы объектов Python () и zip ()
- Ошибка ввода () – NameError: имя «…» не определено