web-dev-qa-db-ja.com

python 3.5(pip、ubuntu 3.5)に「シークレット」をインストールできません

ライブラリを使用しようとしていますsecrets on Python 3.5。これにはpythonインストールが付属していません。 pip経由でインストールできません。python 3.5で動作させる方法はありますか?

9

このためのPyPiモジュールがなく、Ubuntuが古代のpythonバージョンを使用しているという事実はかなり煩わしいものです。誰かがこれを修正できればいいのですが。それまでは:

古いバージョンのPython(> = 2.4 and <= 3.5)でシークレットを生成するには、osライブラリの urandom関数 を使用できます。

例:

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()
14
Bitbored

python2-secretsという名前で、Python 2.7、3.4、3.5のシークレットモジュールのバックポートを使用できます。私の意見では少し混乱しています)

インストール:

pip install --user python2-secrets
6
Vicente

使用しようとしているモジュールは、バージョン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'>
2
WorkShoft

PEP 506 を見ると、この提案はsecretsの実装方法について述べており、パッケージ自体の作成者が Bitbucketレポジトリ を指しているため、これは公式のPython標準ライブラリの一部です!

0
rite2hhh

Python 3.xでは、代わりにpip install secretを使用します

0