我最近开始使用PEP 484和PEP 586使我的代码更清晰,更易于访问。到目前为止一切正常,但是当我想Literal从包中使用时,typing它似乎无法导入。最令人惊讶的是,PyCharm 根本没有抱怨导入或使用它。
我最终想使用的代码如下所示:
SomeVar = TypeVar("SomeVar", Literal['choice1'], Literal['choice2'], someType)
Run Code Online (Sandbox Code Playgroud)
在您可以使用字符串来描述您想要的内容或已经制定的解决方案的情况下,将使用它,例如:
def someFunc(my_var: SomeVar = 'choice1'):
result = []
if my_var == 'choice1':
result.append(...)
else:
result = my_var
return result
Run Code Online (Sandbox Code Playgroud)
我使用带有 Python 3.7.7 的 Anaconda 环境。
我正在使用带有 Jupyter 扩展 (ms-toolsai.jupyter) 版本 2021.8.1054968649 的 Visual Studio Code,我通过 ssh 连接到容器(因此我同时使用远程 - 容器和远程 - SSH)。由于各种原因,我无法使用默认的本地版本的 Jupyter,我必须在现有的 Jupyter 笔记本上运行。它曾经可以工作,但现在扩展找不到任何内核(应该是最右侧的选项):

查看日志后似乎出现错误 503
Error 2021-07-27 17:23:09: findKernel crashed [t [Error]: Invalid response: 503 Service Unavailable
at /home_local/user/.vscode-server/extensions/ms-toolsai.jupyter-2021.8.1054968649/out/client/node_modules/@jupyterlab/services.js:3:492374
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async m.getRunningKernels (/home_local/user/.vscode-server/extensions/ms-toolsai.jupyter-2021.8.1054968649/out/client/extension.js:90:227410)
at async Promise.all (index 0)
at async y.listKernels (/home_local/user/.vscode-server/extensions/ms-toolsai.jupyter-2021.8.1054968649/out/client/extension.js:90:468689)] {
response: N [Response] {
size: 0,
timeout: 0,
[Symbol(Body internals)]: { body: [PassThrough], disturbed: false, error: null },
[Symbol(Response internals)]: {
url: 'http://distant_adress:8888/api/kernels?1627399389810',
status: …Run Code Online (Sandbox Code Playgroud)