标签: python-keyring

在 WSL2 上 `pip install virtualenv` 命令挂起时间太长

在运行 Ubuntu 20.04 的 WSL2 下,我尝试安装 virtualenv 并运行 pip pip install virtualenv,但该命令只是挂起,不打印任何内容。

我终止了它并按照此处python3 -v -m pip install virtualenv的建议再次运行它,它挂在网上:import 'keyring.backends.OS_X'

[...]
# /usr/lib/python3/dist-packages/keyring/backends/__pycache__/_OS_X_API.cpython-38.pyc matches /usr/lib/python3/dist-packages/keyring/backends/_OS_X_API.py
# code object from '/usr/lib/python3/dist-packages/keyring/backends/__pycache__/_OS_X_API.cpython-38.pyc'
# destroy keyring.backends._OS_X_API
import 'keyring.backends.OS_X' # <_frozen_importlib_external.SourceFileLoader object at 0x7fa66c4b4610>
Run Code Online (Sandbox Code Playgroud)

我尝试按照此处的python -m pip install some_package_you_want回答运行,但出现了同样的问题。

另外,我尝试按照此处的PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring建议导出环境变量,但不幸的是它也没有解决问题。

编辑:该python3 -v -m pip install virtualenv命令在挂起大约 5 分钟后最终成功。

编辑2:我认为问题在于 WSL2 太慢,如此处评论。最终,我安装了 virtualenv (venv),并sudo apt-get install python3-venv使用命令激活了虚拟环境python3 -v …

python pip python-keyring windows-subsystem-for-linux

14
推荐指数
1
解决办法
6290
查看次数

运行 pip list -o 时出现密钥环警告

我一直在尝试运行pip list -opip list --outdated查看是否需要更新任何包,但它进入了打印循环:WARNING: Keyring is skipped due to an exception: Failed to create the collection: Prompt dismissed..

我已经升级了密钥环并且版本已经是最新的。我在pip install {package} --upgrade用于升级其他软件包时也看到了这个密钥环警告。

python ubuntu pip python-keyring

10
推荐指数
1
解决办法
4882
查看次数

Docker 内部具有私有依赖项的工作 Poetry 项目

我有一个托管在Google Cloud Platform ArtifactRegistry中的 Python 库。此外,我有一个使用Poetry 的Python 项目,它依赖于该库。

\n

这是我的项目文件pyproject.toml

\n
[tool.poetry]\nname = "Test"\nversion = "0.0.1"\ndescription = "Test project."\nauthors = [\n    "Me <me@mycompany.com>"\n]\n\n[tool.poetry.dependencies]\npython = ">=3.8,<4.0"\nmylib = "0.1.1"\n\n[tool.poetry.dev-dependencies]\n"keyrings.google-artifactregistry-auth" = "^1.1.0"\nkeyring = "^23.9.0"\n\n[build-system]\nrequires = ["poetry-core>=1.1.0"]\nbuild-backend = "poetry.core.masonry.api"\n\n[[tool.poetry.source]]\nname = "my-lib"\nurl = "https://us-east4-python.pkg.dev/my-gcp-project/my-lib/simple/"\nsecondary = true\n\n
Run Code Online (Sandbox Code Playgroud)\n

为了启用我的私有存储库,我安装了gcloud CLI并使用我的凭据进行了身份验证。因此,当我运行此命令时,我会看到正确的结果,如下所示:

\n
$ gcloud auth list\nACTIVE  ACCOUNT\n...\n*       <my-account>@appspot.gserviceaccount.com\n...\n
Run Code Online (Sandbox Code Playgroud)\n

此外,我将Python 密钥环与keyrings.google-artifactregistry-auth一起使用,正如您在项目文件中看到的那样。

\n

因此,通过此设置,我可以运行poetry install,使用 GCP 的身份验证从我的私有工件注册表下载依赖项。

\n
\n

当我尝试在 Docker 容器中应用相同的原则时,问题就出现了。

\n

我创建了一个像这样的 …

python python-keyring gcloud python-poetry google-artifact-registry

10
推荐指数
1
解决办法
3907
查看次数

如何在Windows上实现python-keyring?

python-keyring如何在Windows上提供安全性?

在Linux上的GNOME/KDE中,系统会提示用户输入密码以授权每个应用程序访问密钥环.

在Windows中,当应用程序访问密钥环时,没有这样的提示.是什么阻止随机python应用程序通过运行从密钥环检索密码

import keyring
get_password(service, username)
Run Code Online (Sandbox Code Playgroud)

如何实施用户同意?基于所有安装的程序都是"可信"的假设,整个概念,至少在Windows中?

python windows security python-keyring

9
推荐指数
2
解决办法
7985
查看次数

使用py2exe打包时不包含密钥环模块

我正在使用Windows上的python 2.7和keyring-3.2.1创建一个应用程序.在我的eclipse上的python代码中,我使用了

import keyring
keyring.set_password("service","jsonkey",json_res)
json_res= keyring.get_password("service","jsonkey")
Run Code Online (Sandbox Code Playgroud)

工作正常,因为我在密钥环中存储json响应.但是,当我使用py2exe将python代码转换为exe时,它会在制作dist时显示导入错误密钥环.请建议如何在py2exe中包含密钥环.

Traceback (most recent call last):
  File "APP.py", line 8, in <module>
  File "keyring\__init__.pyc", line 12, in <module>
  File "keyring\core.pyc", line 15, in <module>
  File "keyring\util\platform_.pyc", line 4, in <module>
  File "keyring\util\platform.pyc", line 29, in <module>
AttributeError: 'module' object has no attribute 'system'
Run Code Online (Sandbox Code Playgroud)

platform_.py代码是:

from __future__ import absolute_import

import os
import platform

def _data_root_Windows():
    try:
        root = os.environ['LOCALAPPDATA']
    except KeyError:
        # Windows XP
        root = os.path.join(os.environ['USERPROFILE'], 'Local Settings')
    return os.path.join(root, 'Python …
Run Code Online (Sandbox Code Playgroud)

python json py2exe mercurial-keyring python-keyring

8
推荐指数
1
解决办法
1791
查看次数

如何配置 Python Keyring 以从 Windows 7 上的 Windows 凭据管理器中提取凭据?

我花了很多时间研究钥匙圈包,试图让一个简单的例子起作用。我在 Windows 7-x64 机器上使用 python 2.7。我已经安装了该软件包并确认这些文件在我的 Lib/site-packages 文件夹中。

在安装文档的这段代码片段中,“系统”中应该包含什么?

import keyring
keyring.get_password("system", "username")
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,出现以下错误:

运行时错误:没有可用的推荐后端。如果要使用非推荐的后端,请安装 keyrings.alt 包。

它似乎没有将 Windows 识别为后端。我觉得我错过了一个简单的步骤。感谢任何帮助,包括从 Windows 凭据管理器中提取通用凭据的简单代码示例。

python windows windows-7-x64 python-2.7 python-keyring

7
推荐指数
2
解决办法
1万
查看次数

有没有办法在不提供主密码的情况下访问Windows中的密钥环?

我正在与一个涉及连接数据库的同事开发脚本.我们希望保持代码独立于我们中的哪一个使用它,同时保持我们的密码私密,而不必在工作日期间反复进行身份验证.经过一些搜索(我们都是Python的新手)似乎我们可以为此目的使用密钥环,所以我从pip安装它(很可能是基于我的安装日期内存的1.2.2版本的库).

问题是当我尝试访问我存储的密码时,系统会提示我设置主密码以访问密钥环,如下所示(来自IDLE):

>>> import keyring
>>> keyring.set_password('Service', 'MyUsername', 'MyPassword')

Warning (from warnings module):
  File "C:\Python27\lib\getpass.py", line 92
  return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Please enter password for encrypted keyring:
Run Code Online (Sandbox Code Playgroud)

设置密码后,我可以轻松获取和设置密码,直到我重新启动shell.现在我必须再次输入主密码:

>>> ================================ RESTART ================================
>>> import keyring
>>> print keyring.get_password('Service', 'MyUsername')

Warning (from warnings module):
  File "C:\Python27\lib\getpass.py", line 92
    return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Please enter password …
Run Code Online (Sandbox Code Playgroud)

python windows authentication passwords python-keyring

6
推荐指数
1
解决办法
1636
查看次数

在MAC OSX上使用PY2APP打包密钥环模块时出错

我在python中创建一个需要存储密钥的应用程序.我使用密钥环模块来存储密钥.我使用python-2.7和osx 10.8.5与密钥环3.2(easy_install密钥环).代码在eclipse上正常运行,但是当我使用py2app将代码转换为应用程序时,它显示错误的MYAPP错误打开控制台终止

import keyring
keyring.set_password("title","section","keys")
res= keyring.get_password("title","section")
Run Code Online (Sandbox Code Playgroud)

我在键入"python setup.py py2app"时包含终端响应废料,同时通过py2app制作dist

byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/__init__.py to keyring/__init__.pyc
creating /Users/fis/Desktop/build/bdist.macosx-10.8-intel/python2.7-semi_standalone/app/collect/keyring
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/backend.py to keyring/backend.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/core.py to keyring/core.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/errors.py to keyring/errors.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/getpassbackend.py to keyring/getpassbackend.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/py27compat.py to keyring/py27compat.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/util/__init__.py to keyring/util/__init__.pyc
creating /Users/fis/Desktop/build/bdist.macosx-10.8-intel/python2.7-semi_standalone/app/collect/keyring/util
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/util/platform_.py to keyring/util/platform_.pyc
byte-compiling /Library/Python/2.7/site-packages/keyring-3.2-py2.7.egg/keyring/util/properties.py to keyring/util/properties.pyc
byte-compiling /Library/Python/2.7/site-packages/pathtools-0.1.2-py2.7.egg/pathtools/__init__.pyc to pathtools/__init__.pyc
creating /Users/fis/Desktop/build/bdist.macosx-10.8-intel/python2.7-semi_standalone/app/collect/pathtools
Run Code Online (Sandbox Code Playgroud)

python macos python-2.7 mercurial-keyring python-keyring

6
推荐指数
1
解决办法
766
查看次数

如何禁用 python 密钥环的命令行密码提示 - headless debian linux

问题:

我想keyring在无头 Linux 环境中使用 python 的库,特别是 Debian 9 GCP 计算实例。我有一个 cron 作业,经常醒来运行 python 脚本(...它利用密钥环检索各种资源的密码)。

keyring问题是 python 脚本会在允许 python 脚本继续之前提示输入用户密码。这不起作用,因为脚本作为后台 cron 进程执行。有趣的是,在 Windows 环境中运行相同的脚本不是问题,大概是因为进程(用户)已经经过身份验证。

研究:

我只找到了一篇 StackOverflow 帖子(此处)和官方在线文档(此处- “在无头 Linux 系统上使用密钥环”),其中有一小节介绍如何在无头 Linux 环境中运行密钥环。

StackOverflow 帖子介绍了如何使用 执行此操作pgcli,但没有介绍任何任意命令行工具(例如我的 python 脚本),因此我发现它没有帮助。

同样,我也无法成功重现文档中的步骤(感觉好像缺少步骤?)以实现效果。明确地,执行完后dbus-run-session -- sh,我运行gnome-keyring-daemon --unlock,但 dbus-run-session 似乎挂起并且似乎没有执行任何操作)。

问题:

1) 鉴于我的上述场景,有谁可以提供关于如何keyring在无头 Debian Linux 环境中运行的明确说明?明确 - 没有密码提示。如果可能的话,我真的很感激非常明确的分步说明。

2) 如果没有,我将使用它keyring来检索各种资源的密码(例如 postgres、远程 API 密钥等)。我希望将它们固定在钥匙圈中,但如果不可能,推荐的替代方案是什么?我读了一些关于在环境变量中存储此类数据的 StackOverflow 帖子,但不建议这样做。我还觉得创建一个配置文件然后对其进行加密似乎很繁重。


任何帮助表示赞赏。非常感谢你 -

security python-keyring

6
推荐指数
1
解决办法
3001
查看次数

Pyinstaller密钥环Windows 32位

我有以下python测试代码:

import keyring
print(keyring.get_keyring())
keyring.set_password("a","b","c")
print(keyring.get_password("a","b"))
Run Code Online (Sandbox Code Playgroud)

如果我使用32位python或64位一个运行此代码,则将获得以下输出(按预期):

<keyring.backends.Windows.WinVaultKeyring object at 0x00000187B7DD6358>
c
Run Code Online (Sandbox Code Playgroud)

我的目的是构建两个独立的可执行文件(32位和64位):为了实现我正在使用pyinstaller和以下命令(test.py是包含上面显示的python代码的文件的名称)

pyinstaller --onefile test.py
Run Code Online (Sandbox Code Playgroud)

如果我运行64位exe,则将获得以下输出(按预期):

<keyring.backends.Windows.WinVaultKeyring object at 0x00000187B7DD6358>
c
Run Code Online (Sandbox Code Playgroud)

相反,如果我运行32位exe,则会获得以下输出:

<keyring.backends.fail.Keyring object at 0x05463ED0>
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    keyring.set_password("a","b","c")
  File "site-packages\keyring\core.py", line 47, in set_password
  File "site-packages\keyring\backends\fail.py", line 23, in get_password
RuntimeError: No recommended backend was available. Install the keyrings.alt package if you want to use the non-recommended backends. See README.rst for details.
[2732] Failed to execute script test
Run Code Online (Sandbox Code Playgroud)

有人知道发生了什么吗? …

python windows 32-bit pyinstaller python-keyring

5
推荐指数
1
解决办法
635
查看次数