在运行 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 …
我一直在尝试运行pip list -o并pip list --outdated查看是否需要更新任何包,但它进入了打印循环:WARNING: Keyring is skipped due to an exception: Failed to create the collection: Prompt dismissed..
我已经升级了密钥环并且版本已经是最新的。我在pip install {package} --upgrade用于升级其他软件包时也看到了这个密钥环警告。
我有一个托管在Google Cloud Platform ArtifactRegistry中的 Python 库。此外,我有一个使用Poetry 的Python 项目,它依赖于该库。
\n这是我的项目文件pyproject.toml:
[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\nRun Code Online (Sandbox Code Playgroud)\n为了启用我的私有存储库,我安装了gcloud CLI并使用我的凭据进行了身份验证。因此,当我运行此命令时,我会看到正确的结果,如下所示:
\n$ gcloud auth list\nACTIVE ACCOUNT\n...\n* <my-account>@appspot.gserviceaccount.com\n...\nRun Code Online (Sandbox Code Playgroud)\n此外,我将Python 密钥环与keyrings.google-artifactregistry-auth一起使用,正如您在项目文件中看到的那样。
\n因此,通过此设置,我可以运行poetry install,使用 GCP 的身份验证从我的私有工件注册表下载依赖项。
当我尝试在 Docker 容器中应用相同的原则时,问题就出现了。
\n我创建了一个像这样的 …
python python-keyring gcloud python-poetry google-artifact-registry
python-keyring如何在Windows上提供安全性?
在Linux上的GNOME/KDE中,系统会提示用户输入密码以授权每个应用程序访问密钥环.
在Windows中,当应用程序访问密钥环时,没有这样的提示.是什么阻止随机python应用程序通过运行从密钥环检索密码
import keyring
get_password(service, username)
Run Code Online (Sandbox Code Playgroud)
如何实施用户同意?基于所有安装的程序都是"可信"的假设,整个概念,至少在Windows中?
我正在使用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) 我花了很多时间研究钥匙圈包,试图让一个简单的例子起作用。我在 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的新手)似乎我们可以为此目的使用密钥环,所以我从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中创建一个需要存储密钥的应用程序.我使用密钥环模块来存储密钥.我使用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) 问题:
我想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 帖子,但不建议这样做。我还觉得创建一个配置文件然后对其进行加密似乎很繁重。
任何帮助表示赞赏。非常感谢你 -
我有以下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-keyring ×10
python ×9
windows ×4
pip ×2
python-2.7 ×2
security ×2
32-bit ×1
gcloud ×1
json ×1
macos ×1
passwords ×1
py2exe ×1
pyinstaller ×1
ubuntu ×1