代码之家  ›  专栏  ›  技术社区  ›  Harshwardhan Jain

无法在python 3.5(pip、ubuntu 3.5)上安装“secrets”

  •  11
  • Harshwardhan Jain  · 技术社区  · 6 年前

    我想用图书馆 秘密 在Ubuntu 16.04的Python 3.5上。它不随python安装而来,我无法通过pip安装它。有没有办法让它在python 3.5上工作?

    5 回复  |  直到 6 年前
        1
  •  15
  •   BrianRT    5 年前

    事实上,没有PyPi模块,Ubuntu使用的是古老的python版本,这很烦人,如果有人能解决这个问题,那就太好了。同时:

    要在较早版本的Python(>=2.4和<=3.5)中生成机密,可以使用 urandom function from the os library

    示例:

    from os import urandom
    
    urandom(16) # same as token_bytes(16)
    urandom(16).hex() # same as token_hex(16) (python >=3.5)
    

    要使某些向后兼容的内容在支持时仍使用新的机密库,您可以执行以下操作

    try:
        from secrets import token_hex
    except ImportError:
        from os import urandom
        def token_hex(nbytes=None):
            return urandom(nbytes).hex()
    
        2
  •  10
  •   Vicente    5 年前

    您可以使用Python 2.7、3.4和3.5的secrets模块的后端口,其名称为 python2-secrets 。(在我看来,这个名字有点令人困惑)

    安装:

    pip install --user python2-secrets
    
        3
  •  2
  •   heemayl    6 年前

    从3.5版开始,您尝试使用的模块不是Python的一部分。

    看起来版本机密也无法从pip下载

    $ pip install secrets
    Collecting secrets
     Could not find a version that satisfies the requirement secrets (from versions: ) No matching distribution found for secrets
    

    在Python 3.6环境下工作时,可以立即导入该模块,因为它是标准库的一部分:

    Python 3.6.3 (default, Mar  7 2018, 21:08:21)  [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information.
    >>> import secrets
    >>> print(secrets)
    <module 'secrets' from '/home/mikel/.pyenv/versions/3.6.3/lib/python3.6/secrets.py'>
    
        4
  •  1
  •   Mohamed Abdillah    4 年前

    在Python 3中。x使用 pip install secret 相反

        5
  •  0
  •   rite2hhh    5 年前

    如果你看看 PEP 506 ,该提案讨论了如何 secrets 已实现,并指向 Bitbucket repository 由包本身的作者编写,该包现在是官方Python标准库的一部分!