Python
如何將私鑰儲存為環境變數並在我的程式碼中呼叫它?
import os from dotenv import dotenv_value . . . private_key = os.getenv("PRIVATE_KEY") . . print(private_key) //for testing purposes only
這就是我目前必須在我的智能合約中使用我的私鑰。出於明顯的目的,我不希望它在程式碼中可見,但我不知道如何在 Windows 上執行此操作。我知道在 Mac 上做起來要簡單得多。我可能錯誤地將環境變數儲存為環境變數,但我認為情況並非如此。我不知道使用 os 或 getenv 是否是錯誤的起點或什麼。我需要一些幫助。
INFO: Could not find files for the given pattern(s). None Traceback (most recent call last): File "C:\Users\amazi\demos\web3_py_simple_storage\deploy.py", line 58, in <module> signed_txn = w3.eth.account.sign_transaction(transaction, private_key=private_key) File "C:\Python310\lib\site-packages\eth_utils\decorators.py", line 18, in _wrapper return self.method(obj, *args, **kwargs) File "C:\Python310\lib\site-packages\eth_account\account.py", line 728, in sign_transaction account = self.from_key(private_key) File "C:\Python310\lib\site-packages\eth_utils\decorators.py", line 18, in _wrapper return self.method(obj, *args, **kwargs) File "C:\Python310\lib\site-packages\eth_account\account.py", line 250, in from_key key = self._parsePrivateKey(private_key) File "C:\Python310\lib\site-packages\eth_utils\decorators.py", line 18, in _wrapper return self.method(obj, *args, **kwargs) File "C:\Python310\lib\site-packages\eth_account\account.py", line 775, in _parsePrivateKey return self._keys.PrivateKey(HexBytes(key)) File "C:\Python310\lib\site-packages\hexbytes\main.py", line 23, in __new__ bytesval = to_bytes(val) File "C:\Python310\lib\site-packages\hexbytes\_utils.py", line 30, in to_bytes raise TypeError(f"Cannot convert {val!r} of type {type(val)} to bytes") TypeError: Cannot convert None of type <class 'NoneType'> to bytes
這是我在進行您建議的調整後得到的錯誤。我很可能搞砸了在文件中設置路徑。我對此仍然很陌生,而且我對python沒有太多經驗。
美好的第一天會做以下事情
import os private_key = os.environ.get('PRIVATE_KEY')
如果這是一個 Django 項目,請記住包含以下內容
settings.py
from pathlib import Path import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent
並使用
.gitignore
文件並排除您的.env
文件我希望這回答了你的問題
謝謝你
例如,您需要使用以下變數創建一個 .env 文件
私鑰 = ‘123456789’
在你的 .py 文件中
import os from dotenv import load_dotenv load_dotenv() privateKey = os.getenv('privateKey')
你還需要安裝 dotenv
pip install python-dotenv