ライブラリを使用しようとしていますsecrets on Python 3.5。これにはpythonインストールが付属していません。 pip経由でインストールできません。python 3.5で動作させる方法はありますか?
このための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()
python2-secretsという名前で、Python 2.7、3.4、3.5のシークレットモジュールのバックポートを使用できます。私の意見では少し混乱しています)
インストール:
pip install --user python2-secrets
使用しようとしているモジュールは、バージョン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'>
PEP 506 を見ると、この提案はsecrets
の実装方法について述べており、パッケージ自体の作成者が Bitbucketレポジトリ を指しているため、これは公式のPython標準ライブラリの一部です!
Python 3.xでは、代わりにpip install secret
を使用します