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

Я использую 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, он говорит, что ключевое слово "deactivate" не распознается, когда я пытаюсь отключить его.

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

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

какие мысли?

спасибо.

5
задан Community
02.02.2023 14:33 Количество просмотров материала 2875
Распечатать страницу

1 ответ

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

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

У меня была аналогичная проблема с conda env (и, похоже, она одинакова для vanilla virtualenv). Cmder заставляет свое собственное приглашение и игнорирует приглашение 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 {false|conda/virtual env name}
---

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)
3
отвечен Luke 2023-02-03 22:21

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх