Ljzd-PRO / Mys_Goods_Tool

米游社商品兑换工具 | 短信验证登录 | 终端图形界面
https://pypi.org/project/mys-goods-tool
MIT License
460 stars 70 forks source link

打包文件在Ubuntu上报错 pip安装的如何共用json ssh链接应该如何让进程挂在后台 #91

Closed qllokirin closed 1 year ago

qllokirin commented 1 year ago

首先非常感谢您的项目,没想到现在已经出到了图形化界面,太强了! 我现在windows上试了一下感觉没什么问题,遇到的疑问来自我在一台Ubuntu服务器上的

系统:

(mys) root@iZ0jlfdhubp6dlnrp6szdvZ:~/mys/dist# lsb_release -a
LSB Version:    core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal
(mys) root@iZ0jlfdhubp6dlnrp6szdvZ:~/mys/dist# python -V
Python 3.9.16

打包文件在Ubuntu上报错

解压的是github action最新的一个

(mys) root@iZ0jlfdhubp6dlnrp6szdvZ:~/mys# tree
.
├── dist
│   └── Mys_Goods_Tool
├── Mys_Goods_Tool_v2-Linux-x86_64.zip
└── README.md
(mys) root@iZ0jlfdhubp6dlnrp6szdvZ:~/mys# cd dist/
(mys) root@iZ0jlfdhubp6dlnrp6szdvZ:~/mys/dist# ./Mys_Goods_Tool
[3980] Error loading Python lib '/tmp/_MEIXadoU3/libpython3.11.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /tmp/_MEIXadoU3/libpython3.11.so.1.0)

看了一下可能是版本不兼容的问题

pip安装的如何共用json

然后我使用pip安装的方法可以正常运行,但是想问问应该如何共用json(因为我在windows上已经弄过一遍了,有个user_data.json,想偷个懒)

ssh链接应该如何让进程挂在后台

还有如何让进程一直挂在后台,我有尝试用tmux和screen,但是似乎有什么冲突,导致鼠标无法点击

Ljzd-PRO commented 1 year ago

version 'GLIBC_2.35' not found

这个报错查了一下和Ubuntu版本有关,GitHub Actions的运行时是 Ubuntu 22.04
https://docs.github.com/zh/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources

尽量不要从源码编译 glibc

  1. 可以找到来自 Ubuntu 22.04 的 2.35 版本的 libc6
    https://packages.ubuntu.com/jammy/libc6

  2. 下载这个包然后安装:

    sudo apt install …
  3. 查看是否多出了GLIBC_2.35

    strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
Ljzd-PRO commented 1 year ago

然后安装 libc6 的话,添加 22.04 的源然后再安装会比较好,而不是下载包文件

如果您正在运行 Ubuntu,请尽量使用像 aptitude 或者 synaptic 一样的软件包管理器,代替人工手动操作的方式从这个网页下载并安装软件包。

您可以使用以下列表中的任何一个源镜像只要往您的 /etc/apt/sources.list 文件中像下面这样添加一行:

deb http://cz.archive.ubuntu.com/ubuntu jammy main 

请使用最终确定的源镜像替换 cz.archive.ubuntu.com/ubuntu。

然后使用:

sudo apt update && sudo apt install libc6
Ljzd-PRO commented 1 year ago

如果已经有Python环境了,可以用 pip 安装

创建 Virtualenv 虚拟环境(主要是方便管理依赖,防止和其他PyPI包版本冲突)

python -m venv <新建的虚拟环境路径>

激活虚拟环境

source <新建的虚拟环境路径>/bin/activate

然后用 pip 安装

python -m pip install mys-goods-tool

运行

python -m mys_goods_tool
qllokirin commented 1 year ago

谢谢!命令行和打包程序都没有问题啦! GLIBC_2.35我用你说的换源方法下载后GLIBC_2.35正常出现了,谢谢大佬帮我查资料www 抓个虫,大佬你上面的-m exchange- simple打错了,多了个空格,应该是-m exchange-simple 刚刚发现还有-c参数可以指定配置文件路径,配置文件复制过来就好了

python -m mys_goods_tool -m exchange-simple -c ./user_data.json

./Mys_Goods_Tool -m exchange-simple

都正常运行了 感谢!坐等6点了哈哈

挂后台我使用的是tmux,开个窗口,就算终端退出了还在运行,非常好用 虚拟环境我用的是conda,习惯了,感谢大佬提醒

qllokirin commented 1 year ago

看来大伙都在用科技哈哈,显示库存不足兑换失败了, 我试了下一个一直有货的兑换是没问题的,我下次再试试,感谢

Ljzd-PRO commented 1 year ago

看来大伙都在用科技哈哈,显示库存不足兑换失败了, 我试了下一个一直有货的兑换是没问题的,我下次再试试,感谢

是测试兑换还是到了兑换时间以后兑换失败了

qllokirin commented 1 year ago

看来大伙都在用科技哈哈,显示库存不足兑换失败了, 我试了下一个一直有货的兑换是没问题的,我下次再试试,感谢

是测试兑换还是到了兑换时间以后兑换失败了

感觉只是单纯的被抢完了,前面是一次手动测试

05-05 13:42:46 [INFO] mys_goods_tool.api | 米游币商品兑换 - 执行兑换: 用户 260456549 商品 2023041811121 兑换失败,可以自行确认。
05-05 13:42:46 [DEBUG] mys_goods_tool.api | 网络请求返回: {"data":null,"message":"商品库存不足","retcode":-2102}

05-05 17:09:52 [INFO] mys_goods_tool.exchange_mode | 已添加定时兑换任务 26xxxx549 - 【崩坏:星穹铁道】角色立牌-三月七 - 2023-05-05 18:00:00
05-05 18:00:00 [INFO] mys_goods_tool.api | 米游币商品兑换 - 执行兑换: 用户 26xxx49 商品 2023041811121 兑换失败,可以自行确认。
05-05 18:00:00 [DEBUG] mys_goods_tool.api | 网络请求返回: {"data":null,"message":"商品库存不足","retcode":-2102}
05-05 18:00:00 [ERROR] mys_goods_tool.exchange_mode | 用户 260456549 - 【崩坏:星穹铁道】角色立牌-三月七 - 线程 0 - 兑换失败
05-05 18:00:00 [ERROR] mys_goods_tool.exchange_mode | 用户 260456549 - 【崩坏:星穹铁道】角色立牌-三月七 - 线程 0 - 兑换失败

然后我找了一个还有卖的东西,点了两下测试

05-05 18:17:21 [INFO] mys_goods_tool.api | 米游币商品兑换 - 执行兑换: 用户 2604xxx9 商品 2023041812871 兑换成功!可以自行确认。
05-05 18:17:21 [DEBUG] mys_goods_tool.api | 网络请求返回: {"retcode":0,"message":"OK","data":{"order_sn":"M23050xxxxx260456549"}}
05-05 18:18:03 [INFO] mys_goods_tool.api | 米游币商品兑换 - 执行兑换: 用户 2604xxxx9 商品 2023041812871 兑换失败,可以自行确认。
05-05 18:18:03 [DEBUG] mys_goods_tool.api | 网络请求返回: {"data":null,"message":"兑换周期内当前商品的可兑换数量超限","retcode":-2101}