py12306
py12306 copied to clipboard
maximum recursion depth exceeded while calling a Python object
启动程序时,报出这个问题后程序停止
启动程序时,报出这个问题后程序停止
意思是递归过度 traceback给一下,没有日志闭眼开车
####### py12306 购票助手,本程序为开源工具,请勿用于商业用途 ########
WEB 管理页面已开启,请访问 主机地址 + 端口 8008 进行查看
**** 当前配置 ****
多线程查询: 未开启
CDN 状态: 未开启
通知状态: 钉钉通知: 已开启
查询间隔: 1 秒
用户心跳检测间隔: 120 秒
WEB 管理页面: 已开启
Traceback (most recent call last):
File "/Users/ronacaodo/Docker/py12306/main.py", line 64, in <module>
main()
File "/Users/ronacaodo/Docker/py12306/main.py", line 20, in main
Query.check_before_run()
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 61, in check_before_run
self = cls()
File "/Users/ronacaodo/Docker/py12306/py12306/helpers/func.py", line 30, in singleton_new
it.__init_original__(*args, **kw)
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 33, in __init__
self.request_device_id()
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 153, in request_device_id
return self.request_device_id()
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 153, in request_device_id
return self.request_device_id()
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 153, in request_device_id
return self.request_device_id()
[Previous line repeated 972 more times]
File "/Users/ronacaodo/Docker/py12306/py12306/query/query.py", line 132, in request_device_id
response = self.session.get(API_GET_BROWSER_DEVICE_ID)
File "/opt/anaconda3/lib/python3.9/site-packages/requests/sessions.py", line 546, in get
return self.request('GET', url, **kwargs)
File "/Users/ronacaodo/Docker/py12306/py12306/helpers/request.py", line 60, in request
response = super().request(*args, **kwargs)
File "/opt/anaconda3/lib/python3.9/site-packages/requests_html.py", line 672, in request
r = super(HTMLSession, self).request(*args, **kwargs)
File "/opt/anaconda3/lib/python3.9/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/opt/anaconda3/lib/python3.9/site-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/opt/anaconda3/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/connectionpool.py", line 597, in urlopen
httplib_response = self._make_request(conn, method, url,
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/connectionpool.py", line 839, in _validate_conn
conn.connect()
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/connection.py", line 330, in connect
self.ssl_context = create_urllib3_context(
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 266, in create_urllib3_context
context.set_ciphers(ciphers or DEFAULT_CIPHERS)
File "/opt/anaconda3/lib/python3.9/site-packages/urllib3/contrib/pyopenssl.py", line 424, in set_ciphers
self._ctx.set_cipher_list(ciphers)
File "/opt/anaconda3/lib/python3.9/site-packages/OpenSSL/SSL.py", line 1219, in set_cipher_list
tmpconn = Connection(self, None)
File "/opt/anaconda3/lib/python3.9/site-packages/OpenSSL/SSL.py", line 1631, in __init__
self._reverse_mapping[self._ssl] = self
File "/opt/anaconda3/lib/python3.9/weakref.py", line 168, in __setitem__
self.data[key] = KeyedRef(value, self._remove, key)
File "/opt/anaconda3/lib/python3.9/weakref.py", line 349, in __new__
self = ref.__new__(type, ob, callback)
RecursionError: maximum recursion depth exceeded while calling a Python object
一样的问题,解决了喊我一下
获取deviceId 后端接口失效,需要用cookie 中的deviceId或者修改接口。
获取到cookie中deviceId后 往哪塞?
'https://12306-rail-id-v2.pjialin.com/' 这个接口调不通了。这个接口是啥逻辑呀,能自己实现下不
'https://12306-rail-id-v2.pjialin.com/' 这个接口调不通了。这个接口是啥逻辑呀,能自己实现下不
你都看到这里来了,应该知道代码这种接口有两个,注释这个,使用另一个即可。
@IronXiao 哥,这个代码怎么看,在哪里注释?
打开api.py, 打开53行,注释54行
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice'
# API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
打开 api.py, 打开53行,注释54行
你好,这样操作之后就会在控制台打印:
发现 1 个任务
================== 任务 1 ================== 出发站:北京 到达站:深圳 乘车日期:['2020-01-25', '2020-01-26'] 坐席:硬卧,硬座 乘车人:张三 筛选车次:K356,K1172,K4184 任务名称:北京 -> 深圳
发现 1 个用户
正在登录用户 your user name
|=== 查询记录恢复成功 上次查询 2024-01-09 16:37:00.735113 ===|
- Serving Flask app "py12306.web.web" (lazy loading)
- Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead.
- Debug mode: off 正在下载二维码... RuntimeError: 乘车日期错误,比当前时间还早!!
之后就会结束程序的运行,这样的问题怎么解决呢
打开 api.py, 打开53行,注释54行
你好,这样操作之后就会在控制台打印:
发现 1 个任务
================== 任务 1 ================== 出发站:北京 到达站:深圳 乘车日期:['2020-01-25', '2020-01-26'] 坐席:硬卧,硬座 乘车人:张三 筛选车次:K356,K1172,K4184 任务名称:北京 -> 深圳
发现 1 个用户
正在登录用户 your user name
|=== 查询记录恢复成功 上次查询 2024-01-09 16:37:00.735113 ===|
- Serving Flask app "py12306.web.web" (lazy loading)
- Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead.
- Debug mode: off 正在下载二维码... RuntimeError: 乘车日期错误,比当前时间还早!!
之后就会结束程序的运行,这样的问题怎么解决呢
把QUERY_JOBS里乘车时间改为比你当前时间大就行
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
就requirements.txt里面写的Flask 和Flask-JWT-Extended版本就没问题. (当然如果你python版本太新的话,可能会遇到需要把collection 改成collection.abc的问题, 可以上stack overflow看一下)
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
就requirements.txt里面写的Flask 和Flask-JWT-Extended版本就没问题. (当然如果你python版本太新的话,可能会遇到需要把collection 改成collection.abc的问题, 可以上stack overflow看一下)
牛的,确实是版本降低就没事了,谢谢兄弟
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
就requirements.txt里面写的Flask 和Flask-JWT-Extended版本就没问题. (当然如果你python版本太新的话,可能会遇到需要把collection 改成collection.abc的问题, 可以上stack overflow看一下)
大哥,可以问一下我一直在查询也没下单是怎么回事吗,也没报错= =
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
就requirements.txt里面写的Flask 和Flask-JWT-Extended版本就没问题. (当然如果你python版本太新的话,可能会遇到需要把collection 改成collection.abc的问题, 可以上stack overflow看一下)
大哥,可以问一下我一直在查询也没下单是怎么回事吗,也没报错= =
我还没开始实际操作, 就今天下午刚刚给部署上; 所以我也不是很清楚; 如果后面我碰到相应的问题解决了,再告诉你
全局搜 改成这个
API_GET_BROWSER_DEVICE_ID = BASE_URL_OF_12306 + '/otn/HttpZF/logdevice' # API_GET_BROWSER_DEVICE_ID = 'https://12306-rail-id-v2.pjialin.com/'
老哥 改完以后报这个错误 AssertionError: View function mapping is overwriting an existing endpoint function: user.wrapper
我也是这样,怎么破啊老哥们
我的Flask 和Flask-JWT-Extended版本太新就会有这个报错
那请问一下版本多少会没事?
就requirements.txt里面写的Flask 和Flask-JWT-Extended版本就没问题. (当然如果你python版本太新的话,可能会遇到需要把collection 改成collection.abc的问题, 可以上stack overflow看一下)
大哥,可以问一下我一直在查询也没下单是怎么回事吗,也没报错= =
我还没开始实际操作, 就今天下午刚刚给部署上; 所以我也不是很清楚; 如果后面我碰到相应的问题解决了,再告诉你
解决了,原来stations.txt里面的站点信息不是乱填的= =因为我填的站点是最近新开的,所以要自己添加