![](/img/trans.png)
[英]Is there a specific format of storing environment variables in .bash_profile?
[英]Can we load environment variables from ~/.bash_profile without having to source ~./bash_profile?
我有一個名為scraper.py
的 python 腳本,它在某些日子從網絡上抓取信息。 這些天我用cronjob
自動化了這個腳本來運行。 現在每次腳本運行時,我都想向 Slack 發送通知以確保抓取成功。 所以我創建了一個不同的腳本helper_functions.py
,它具有向 Slack 發送消息的功能。 現在,因為我使用了一個無法在腳本中共享的API_KEY
,因為我將它推送到了 GitHub,所以我將它存儲在~./.bash_profile
。 如果我從終端執行source ~/.bash_profile
,腳本運行得非常好,但是當我關閉會話時,代碼會中斷。 那么有沒有辦法讓它在不采購 bash 文件夾的情況下工作?
以下是scraper.py
的腳本
import datetime
import helper_functions as hf
hf.slack_msg("Start scrape")
class IndexSpider(scrapy.Spider):
name = "index"
start_urls = [
"https://finance.yahoo.com"
]
def parse(self, response):
index = response.css("span.Trsdu\(0\.3s\)::text").getall()
yield {
'datetime' : datetime.datetime.now().strftime("%Y-%m-%d %X"),
's&p_500' : index[0],
's&p_500_delta' : index[1],
's&p_500_delta(%)' : index[2],
'dow_30' : index[3],
'dow_30_delta' : index[4],
'dow_30_delta(%)' : index[5],
'nasdaq' : index[6],
'nasdaq_delta' : index[7],
'nasdaq_delta(%)' : index[8],
}
hf.slack_msg("End scrape")
helper_functions.py
import json
import os
def slack_msg(msg):
data = {
"text" : msg
}
webhook = os.environ.get("SLACK_API_KEY")
requests.post(webhook, json.dumps(data))
這是一個想法:
export SLACK_API_KEY=$(cat ~/.secrets/slack_api_key.txt)
webhook = os.environ.get("SLACK_API_KEY") or open(os.path.expanduser("~/.secrets/slack_api_key.txt")).read().strip()
,這將首先查找環境變量,如果未定義變量,則回退到讀取文件crontab 中的活動行將是環境設置或 cron 命令。 環境設置的形式是,
name = value
所以你可以添加
SLACK_API_KEY='theapikey'
* * * * * scraper.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.