@无名啊,感觉太复杂了
/usr/bin/python3 --version
Python 3.13.3
@老虎会游泳,是的 conda 环境 ,coda环境会少组件,我把 /opt/apps/net.winegame.client/files/bin/lutris 这个脚本的python 改成 /home/austin/.conda/envs/wine_game/bin/python3 , 可以运行 游戏助手,然后我下载了 暴雪战网 ,战网打不开,日志就是帖子
然后 按照你的 命令
🎗️ austin ~ 20:39 100%
conda deactivate
🎗️ austin ~ 20:39 100%
/opt/apps/net.winegame.client/files/bin/winegame
2025-06-07 20:39:43,671: Starting Lutris 0.5.12.6
2025-06-07 20:39:43,708: Running Mesa Mesa driver 25.1.2 on llvmpipe (LLVM 19.1.7, 256 bits) (0xffffffff)
2025-06-07 20:39:43,708: GPU: 1002:150E 1D05:5006 (amdgpu drivers)
2025-06-07 20:39:44,452: Startup complete
2025-06-07 20:39:47,148: Unable to load libGLX_nvidia.so.0
2025-06-07 20:39:47,148: Unable to locate libGLX_nvidia
Discord ID: None
2025-06-07 20:39:47,186: Discord RPC Disabled or Discord APP ID Not Present
Traceback (most recent call last):
File "/opt/apps/net.winegame.client/files/share/lutris/bin/lutris-wrapper", line 8, in <module>
import logging
File "/usr/lib/python3.13/logging/__init__.py", line 26, in <module>
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/usr/lib/python3.13/re/__init__.py", line 126, in <module>
from . import _compiler, _parser
File "/usr/lib/python3.13/re/_compiler.py", line 18, in <module>
assert _sre.MAGIC == MAGIC, "SRE module mismatch"
^^^^^^^^^^^^^^^^^^^
AssertionError: SRE module mismatch
2025-06-07 20:39:47,241: No file /tmp/lutris-df2cd6d7-f283-4013-bc4b-939cb1685606
2025-06-07 20:39:49,187: Game still running (state: running)
2025-06-07 20:39:49,188: Stopping 暴雪战网国服 (wine)
2025-06-07 20:39:49,188: The game has run for a very short time, did it crash?
2025-06-07 20:39:49,302: xgamma is not available on your system
也是 sre 模块的问题,我的本地 python 是 3.13. 我问 gpt 他说是 python版本问题 导致 sre模块 出问题
@hui214,有个第三方,在为 Win7 维护高版本 Python,你可以尝试找到匹配你电脑的版本,
再参考知乎大佬打包 Python 应用文章,把第三方库放到 embed 解包目录里,
应该就能分发了?
@austinsuun,你在conda环境中吗?试试先运行
conda deactivate
然后再运行
/opt/apps/net.winegame.client/files/bin/winegame
@ric,方法是设置函数库顶替:
- 选中游戏,点启动旁边的按钮,选“Wine设置”。
- 切换到“函数库”标签页,在输入框里输入
dinput8
(注意不能加.dll
),然后点“添加”。
- 出现“dinput8 (原装先于内建)”,点“确定”即可。
然后把 dinput8.dll 放在 exe 所在文件夹,就能加载了。
还有,cjkfonts不能解决所有乱码问题,有时候必须从Windows把sim*.ttc/sim*.ttf字体文件复制过来用才行。
上述字体打包:https://file.winegame.net/cache/wine/fonts/MicrosoftYaHeiMono-20221214.tar.xz
放到
$WINEPREFIX/drive_c/windows/Fonts
里。
层主 @咯叽 于 2025-06-06 22:23 删除了该楼层。
@无名啊,是的,我以为你是说Visual Basic Script。
@无名啊,安全模式的后台进程不比正常模式少,微软的很多服务依然会启动。想减少后台进程影响只能去PE了。
Windows安装光盘的PE应该是最纯净的,按Shift+F10可以打开cmd窗口。
第三方PE也会启动一些后台服务。
我推荐用MSVC编译,“多线程”那个参数选/MT
(多线程,静态链接),这样运行前就不需要安装VC++运行库了。
wine 4.0 太老了,建议前往 https://winegame.net/api/runners 获取新版wine来运行。
@老虎会游泳,是同一个(Clang 20 编译出来的)二进制文件。
具体测试过程,同时开两个 bash 写命令转码,第一个分别转 AB 文件,第二个转 BA 文件。
因为只转一个时,我看 Ubuntu CPU 历史占用曲线,都是隔几秒就空闲一下。。
而且统计总功耗,同时转两个,总耗电最少。。(如下图,99 < 53 * 2)
@老虎会游泳,那我用 MSVC / msys2 / … 转出 Win 原生程序后,再到安全模式 / WinPE 上测测速度?
那9%应该就是被Windows GUI和后台任务拿走了。Windows的后台任务远多于Linux,甚至任务管理器本身就是一个CPU时间消耗大户。
确保吃满所有 8 核 16 线程
那9%应该就是被Windows GUI和后台任务拿走了。Windows的后台任务远多于Linux,甚至任务管理器本身就是一个CPU时间消耗大户。
所以测全核性能的话Windows肯定是赶不上Linux的,更赶不上没有运行桌面只运行命令行界面的Linux。
Ubuntu桌面在用户不操作的情况下几乎不会增加多少CPU占用,而Windows桌面的后台进程一个个都非常活跃,占用的CPU时间是Ubuntu远远不能比的。
@无名啊,你两边的测试程序是同一个二进制吗?不会是一边-O2优化一边-O3优化产生的性能差异吧。应该在一边编译然后拿到另一边运行,确保跑的是同一个程序。甚至还可以WSL2直接挂载Linux分区,chroot到物理分区的Linux系统里,确保不是库版本不同产生了性能差异。
@老虎会游泳,我测试时,同时开 2 个转码,确保吃满所有 8 核 16 线程的(都是大核)
另外,所有测试都是开 54W TDP,转的时候看功耗测试,整机都是 72W 左右。
会不会是内存寻址多了几层,导致慢了。。
@无名啊,应该不会产生9%的差异才对。虚拟化是硬件执行的,实际上只是切换命名空间而已,只在切换的一瞬间有额外时间开销,切完了就和正常寻址一样了。
@无名啊,我大胆预测一下,Windows没有把最快的核心分配给计算任务,或者最快核心在Windows里频率比Linux里低,导致了性能差异。
@老虎会游泳,会不会是内存寻址多了几层,导致慢了。。
转码时还是要占几 GB 内存的。。
@无名啊,哦对了,说起来,CPU密集型应用也不会受到虚拟化安全的性能影响啊。虚拟化安全影响的主要是系统调用速度和IO速度。。。
纯计算类应用在计算的时候根本不会经过任何安全检查代码。安全检查都是设置在系统调用和IO控制操作附近的。