在Windows 10上通过SSH运行时,诗歌安装抛出WinError 1312

nzkunb0c  于 2023-01-02  发布在  Windows
关注(0)|答案(1)|浏览(182)
    • bounty将在4天后过期**。回答此问题可获得+50声望奖励。miguelv希望引起更多人关注此问题。

我有一个SSH连接从一个Windows机器到另一个,然后试图做一个诗歌安装。

    • 我的问题是我在通过ssh执行poetry install**时遇到这个错误:
[WinError 1312] A specified logon session does not exist. It may already have been terminated.

当我在目标机器上本地执行这个命令时,它可以完美地工作,但是当通过ssh连接时失败了。

    • 如何消除/修复[WinError 1312]?**

我看到另一个用户最近发布了同样的问题,但删除了它。
我已经看到了一些关于MachineKeys的线索,但真的不知道如何进行。任何建议将不胜感激。
Python语言:3.10.8
诗歌:1.2.1

Installing dependencies from lock file

Package operations: 5 installs, 0 updates, 0 removals

  • Installing install-requires (0.3.0)

  OSError

  [WinError 1312] A specified logon session does not exist. It may already have been terminated.

  at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\win32ctypes\core\ctypes\_util.py:53 in check_zero
       49│
       50│ def check_zero_factory(function_name=None):
       51│     def check_zero(result, function, arguments, *args):
       52│         if result == 0:
    →  53│             raise make_error(function, function_name)
       54│         return result
       55│     return check_zero
       56│
       57│

The following error occurred when trying to handle this error:

  error

  (1312, 'CredRead', 'A specified logon session does not exist. It may already have been terminated.')

  at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\win32ctypes\pywin32\pywintypes.py:37 in pywin32error
       33│ def pywin32error():
       34│     try:
       35│         yield
       36│     except WindowsError as exception:
    →  37│         raise error(exception.winerror, exception.function, exception.strerror)
       38│
uplii1fm

uplii1fm1#

基于堆栈跟踪和您的描述中的相似性,我猜测您面临着来自#1892#1917的相同bug,其中Poetry试图使用您的keyring访问/发布模块,因此当这些凭据无效时失败。
但似乎诗歌试图访问钥匙圈,甚至安装操作。
建议的解决方案之一是远程卸载keyring包:
对我来说,我通过pip从那个virtenv中卸载“keyring”包来解决这个问题。
另一个解决方案是导出环境变量PYTHON_KEYRING_BACKEND。下面是一个在Windows上如何执行此操作的示例:

SET PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring

...在Linux上:

export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring

不幸的是,问题#1917似乎仍未解决,因此这是您目前可以找到的修复该问题的最佳解决方法。

相关问题