【问题标题】:Encoding error running `activate` of a venv运行 venv 的“激活”时出现编码错误
【发布时间】:2018-07-05 09:51:27
【问题描述】:

我用python -m myvirtualenv创建了一个虚拟环境。

现在我想激活它: $ cd \ENV\myvirtualenv\Scripts $ activate wrong parameter - 850 $(myvirtualenv) 奇怪的是,当我停用然后再次激活时,错误消息变为“错误参数 - 65001”,之后就没有改变。

除了错误,一切似乎都正常。

这是 win7、python 3.7 上的问题,在默认的 windows shell 和 Cmder 上都会出现。

【问题讨论】:

    标签: windows encoding python-venv


    【解决方案1】:

    这似乎是 python (https://bugs.python.org/issue34144) 中的一个错误。 甚至还有一个 pull request 等待审核 (https://github.com/python/cpython/pull/8321)。

    激活脚本首先应该执行以下操作:

    1. 读取当前代码页(例如 850)
    2. 将代码页更改为 65001
    3. 做实际工作
    4. 改回代码页

    由于该错误,当前代码页(例如 850)由于尾随 . 而被错误解析,并且无法在最后一步中重新设置。这意味着在第二次运行时它仍然是 65001。

    【讨论】:

    • 为什么这会在第二次运行中引发错误呢?代码页是 65001,它不应该在 pyenv 的错误中解决,应该吗?
    • 它还错误地解析了 65001 代码页,并且无法重新设置代码页(脚本总是执行第 4 步)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2021-06-13
    • 2019-12-21
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多