这个的问题是从一个python文件下读取所有的函数,这个是一个蛮坑爹的问题,可以检查一下你要读取的python文件里的函数是不是下划线_开头的,如果是,那应该就会报错,像这样:
比如我要读取的config.py文件是这样的:
import numpy as np
from scipy.stats import rankdata
def _rolling_rank(data):
value = rankdata(data)[-1]
return value
def _rolling_prod(data):
return np.prod(data)
载入的test.py文件是这样的:
from config import *
print(_rolling_rank)
运行,aha,报错!
Traceback (most recent call last):
File "/home/quant01/gp_model/test.py", line 2, in <module>
print(_rolling_rank)
NameError: name '_rolling_rank' is not defined
Process finished with exit code 1
解决思路也很简单,直接把要读取的函数前的下划线去掉就行了,
import numpy as np
import pandas as pd
from scipy.stats import rankdata
def rolling_rank(data):
value = rankdata(data)[-1]
return value
def rolling_prod(data):
return np.prod(data)
运行
from config import *
print(rolling_rank)
这就没问题了.
<function rolling_rank at 0x7fcfe85aff28>
Process finished with exit code 0