Python virtualenv не активируется в Windows 10 Cmder

2095
Chaz

Я использую Cmder на Windows 10 с Python 3.5 и virtualenv на своем ноутбуке и работаю на компьютере просто отлично.

Теперь у меня есть новый компьютер под управлением Windows 10, Python 3.5, virtualenv 15.0, и я могу инициализировать виртуальную среду python с помощью:

virtualenv env 

и я получаю каталоги virtualenv, но когда я бегу:

env/Scripts/activate 

Ничего не произошло. Нет сообщения об ошибке и, что хуже всего, ничего не означает, что среда была активирована или нет (то есть строка «(env)» не появляется в терминале рядом с путем).

Странно то, что я могу активировать venv при использовании простого старого cmd, и в терминале появляется «(env)». Просто не когда запускаю в Cmder. Другая странность (которая, я думаю, не связана, но может быть связана с этим), заключается в том, что, как только я могу запустить virtualenv в обычном cmd, он говорит, что ключевое слово «деактивировать» не распознается, когда я пытаюсь его отключить.

Я нашел этот пост (ниже) в StackOverflow, который похож, но не настолько полезен, так как на самом деле не имеет ответа и больше относится к PowerShell.

https://stackoverflow.com/questions/31769863/cant-activate-python-venv-in-windows-10

Какие-нибудь мысли?

Спасибо.

3

1 ответ на вопрос

3
Luke

Обратите внимание, что этот ответ устарел и больше не требуется, так как cmder теперь поддерживает conda / venv . Обновите установку cmder, если она не работает для вас.

Оригинальный (устаревший) ответ

У меня была похожая проблема с conda env (и похоже на то же самое для vanilla virtualenv). Cmder запускает собственное приглашение и игнорирует PROMPT env var, вам нужно добавить файл с именем [cmder dir] \ config [кое-что] .lua со следующим содержимым:

 -- Code based on https://github.com/cmderdev/cmder/issues/1056 -- with modifications to make it actually work (https://github.com/cmderdev/cmder/issues/1056#issuecomment-237403714) --- -- Find out current conda/virtual envs -- @return  ---  local clink_path_lua_file = clink.get_env('CMDER_ROOT')..'\\vendor\\clink-completions\\modules\\path.lua' dofile(clink_path_lua_file)  function get_virtual_env(env_var) env_path = clink.get_env(env_var) if env_path then basen = exports.basename(env_path) return basen end return false end  --- -- add conda env name  --- function conda_prompt_filter() -- add in conda env name local conda_env = get_virtual_env('CONDA_DEFAULT_ENV') if conda_env then clink.prompt.value = string.gsub(clink.prompt.value, "λ", "["..conda_env.."] λ") end end  --- -- add virtual env name  --- function venv_prompt_filter() -- add in virtual env name local venv = get_virtual_env('VIRTUAL_ENV') if venv then clink.prompt.value = string.gsub(clink.prompt.value, "λ", "["..venv.."] λ") end end  clink.prompt.register_filter(conda_prompt_filter, 20) clink.prompt.register_filter(venv_prompt_filter, 20) 
так ты имеешь в виду, что это работает для venv? Lutaaya Huzaifah Idris 6 лет назад 0
Это так, но этот ответ больше не требуется, так как cmder теперь поддерживает conda / venv https://github.com/cmderdev/cmder/pull/1070 Обновите установку cmder, если она не работает для вас. Luke 6 лет назад 0