Skip to content

运行因子工程,发现stock_finhack_rim插入的finhackcn数据库不存在。 #21

@DennisAu

Description

@DennisAu

执行命令:finhack factor run --task_list=all

会因为没有finhackcn数据库报错。如果将indicators/myfactors.py里面的db='finhackcn'改为finhack, 再执行,会遇到表不存在的问题:
2025-04-06T17:01:16.077832+0800 - finhack.factor.default.indicatorCompute - INFO - computeListByStock---000001.sz
2025-04-06T17:01:16.093781+0800 - finhack.library.monitor - INFO - (1146, "Table 'finhack.stock_finhack_rim' doesn't exist")
2025-04-06T17:01:16.098159+0800 - finhack.library.monitor - INFO - (1146, "Table 'finhack.stock_finhack_rim' doesn't exist")
2025-04-06T17:01:16.103413+0800 - finhack.library.monitor - INFO - (1146, "Table 'finhack.stock_finhack_rim' doesn't exist")
2025-04-06T17:01:16.109025+0800 - finhack.library.monitor - INFO - (1146, "Table 'finhack.stock_finhack_rim' doesn't exist")

遇到错误:
2025-04-06T16:35:19.079689+0800 - finhack.library.monitor - ERROR - getDB:数据库异常,Traceback (most recent call last):
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/monitor.py", line 59, in wrapper
res=self.func(*args,**kwargs)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/mydb.py", line 30, in getDB
db = pymysql.connect(
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 361, in init
self.connect()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 669, in connect
self._request_authentication()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 979, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/_auth.py", line 241, in caching_sha2_password_auth
pkt = conn._read_packet()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1049, "Unknown database 'finhack.cn'")

2025-04-06T16:35:19.080127+0800 - finhack.library.monitor - ERROR - ("select date,industry,value,value_end,value_max,vp,vep,vmp,rcount from stock_finhack_rim where ts_code='000001.SZ'", 'finhackcn')
2025-04-06T16:35:19.080209+0800 - finhack.library.monitor - ERROR - selectToDf:数据库异常,Traceback (most recent call last):
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/monitor.py", line 59, in wrapper
res=self.func(*args,**kwargs)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/mydb.py", line 212, in selectToDf
db,cursor = mydb.getDB(connection)
TypeError: cannot unpack non-iterable bool object

^CTraceback (most recent call last):
File "/home/dennis/miniconda3/envs/finhack/bin/finhack", line 8, in
sys.exit(main())
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/core/command/finhack.py", line 44, in main
core.do_action()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/core/core.py", line 244, in do_action
method()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/core/loader/factor_loader.py", line 9, in run
factor.run()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/default_factor.py", line 22, in run
taskRunner.runTask(self.args.task_list)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/taskRunner.py", line 28, in runTask
c_list = preCheck.checkAllFactors() # chenged factor,代码发生变化
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/preCheck.py", line 40, in checkAllFactors
preCheck.checkIndicatorsType(check_list)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/preCheck.py", line 175, in checkIndicatorsType
factor_tmp=indicatorCompute.computeListByStock(ts_code=ts_code,df_price=df_tmp,check=True,factor_list=check_list,pure=False,save=False,db='tushare')
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/indicatorCompute.py", line 312, in computeListByStock
df_all_tmp = indicatorCompute.computeFactorByStock(ts_code, factor_name, df_all.copy(), where=where, db='factors')
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/factor/default/indicatorCompute.py", line 481, in computeFactorByStock
df=func(df_price,factor)
File "/mnt/3A7EC9C256150D70/projects/projects/finhack_project/indicators/volumeprice.py", line 6, in moneyflow
df_vp=AStock.alignStockFactors(df,'astock_price_moneyflow','trade_date',filed='*',conv=0,db='tushare')
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/market/astock/astock.py", line 33, in dynamic_method
return func(*args, **kwargs)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/market/astock/tushare/astock.py", line 418, in alignStockFactors
df_factor=mydb.selectToDf("select * from "+table+" where ts_code='"+ts_code+"'",db)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/monitor.py", line 59, in wrapper
res=self.func(*args,**kwargs)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/finhack/library/mydb.py", line 214, in selectToDf
cursor.execute(sql)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 1206, in read
self._read_result_packet(first_packet)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 1283, in _read_result_packet
self._read_rowdata_packet()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 1330, in _read_rowdata_packet
packet = self.connection._read_packet()
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 763, in _read_packet
recv_data = self._read_bytes(bytes_to_read)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/site-packages/pymysql/connections.py", line 782, in _read_bytes
data = self._rfile.read(num_bytes)
File "/home/dennis/miniconda3/envs/finhack/lib/python3.9/socket.py", line 716, in readinto
return self._sock.recv_into(b)
KeyboardInterrupt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions