跳转至


课程  因子投资  机器学习  Python  Poetry  ppw  tools  programming  Numpy  Pandas  pandas  算法  hdbscan  聚类  选股  Algo  minimum  numpy  algo  FFT  模式识别  配对交易  GBDT  LightGBM  XGBoost  statistics  CDF  KS-Test  monte-carlo  VaR  回测  过拟合  algorithms  machine learning  strategy  python  sklearn  pdf  概率  数学  面试题  量化交易  策略分类  风险管理  Info  interview  career  xgboost  PCA  wavelet  时序事件归因  SHAP  Figures  Behavioral Economics  graduate  arma  garch  人物  职场  Quantopian  figure  Banz  金融行业  买方  卖方  story  量化传奇  rsi  zigzag  穹顶压力  因子  ESG  因子策略  投资  策略  pe  ORB  Xgboost  Alligator  Indicator  factor  alpha101  alpha  技术指标  wave  quant  algorithm  pearson  spearman  tushare  因子分析  Alphalens  涨停板  herd-behaviour  momentum  因子评估  review  SMC  聪明钱  trade  history  indicators  zscore  波动率  强化学习  顶背离  freshman  resources  others  AI  DeepSeek  network  量子计算  金融交易  IBM  weekly  LLT  backtest  backtrader  研报  papers  UBL  quantlib  jupyter-notebook  scikit-learn  pypinyin  qmt  xtquant  blog  static-site  duckdb  工具  colors  free resources  barra  world quant  Alpha  openbb  数据  risk-management  llm  prompt  CANSLIM  Augment  arsenal  copilot  vscode  code  量化数据存储  hdf5  h5py  cursor  augment  trae  Jupyter  jupysql  pyarrow  parquet  数据源  quantstats  实盘  clickhouse  notebook  redis  remote-agent  AI-tools  Moonshot  回测,研报,tushare 

arsenal »

Jupyter Notebook中如何设置环境变量?


我们常常通过Jupyter Notebook来分享代码和演示分析结果。有时候,我们需要在代码中使用账号和密码,如果它们也被分享出去,可就大不妙了。正确的做法是把密码设置在环境变量中,在代码中读取环境变量。但是,Jupyter Notebook默认设置下,并不能读取到主机的环境变量。

方法之一是使用jupyterhub_config.py,将环境变量设置在这个文件中:

1
c.Spawner.env_keep = [VAR1, VAR2, ...]

这样,在Jupyter hub启动notebook时,列表中的环境变量就会被带入到notebook中。但是,这仅限于jupyterhub的场景。

另一个方法是使用 python-dotenv库,在每一个notebook的头部,通过cell magic语法加载环境变量:

1
2
%load_ext dotenv
%dotenv
不过这样也用很繁琐。

使用kernel.json

有一种方法设置起来复杂一些。但一旦设置好,在使用上却是最简便。这就是通过修改kernel.json。

这个文件的内容如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
 "display_name": "Python 2 with environment",
 "language": "python",
 "argv": [
  "/usr/bin/python2",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {"LD_LIBRARY_PATH":""}
}

最后的"env"字段,显示了如何设置环境变量。如果我们在notebook中要使用tushare, 或者jqdatasdk的账号或者密码,就可以在这个文件中这样设置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
 "display_name": "Python 2 with environment",
 "language": "python",
 "argv": [
  "/usr/bin/python2",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {"jqdata_account":"myaccount", "jqdata_password": "mypassword"}
}

Tip

tushare和jqdatasdk是两个重要的A股证券数据源。

设置后,重新打开notebook,现在就可以这样访问了:

1
2
3
import os

print(os.environ.get('jqdata_account'))

kernel.json的位置

在单元格中,运行以下命令:

1
!jupyter kernelspec list
我们会得到类似如下的输出:

1
2
Available kernels:
  python3    /usr/local/share/jupyter/kernels/python3
kernle.json就在这个目录里。