Hi,
I am using a public computing server with a shared user, I’ve specify my wandb api key in the wandb.init() api call, however, after execution, it will store my api key in ~/.netrc, and overwrite the previous api key (may used by other users). Can I disable this behavior, or specify another file to cache my API key?
Hi @zqbi , happy to help. There is currently no option to list multiple api keys in a single netrc file. If you were to do this manually, wandb will default to the last listed api key to authenticate the user. The recommended approach for shared machine is:
- set your api key in your environment
os.environ["WANDB_API_KEY"]="<api-key>"
- set your api key with
wandb.login(key="<api-key>")
Please let me know if you have any questions.
Hi @mohammadbakir , thanks for replying.
I’ve tried to use this method, however, although now the wandb system use the API key specified in wandb.login(<api-key>)
, the private API key is still saved in ~/.netrc
, is there an approach to use the API key only in current session without saving?
Hi @zqbi ,
Unfortunately not, my recommendation here is to delete the file at the end of your code
import os
import wandb
wandb.login(key="<your api key>")
... #Business Logic
file_path = os.path.expanduser("~/.netrc")
# Check if the file exists before attempting to delete it
if os.path.exists(file_path):
os.remove(file_path)
print(f"{file_path} has been deleted.")
else:
print(f"{file_path} does not exist.")
Hi @zqbi , since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.