在过去几天的头痛中,我找到了 3 种可能的方法来做到这一点,但所有这些方法都有问题。
PyGObject 的 pip安装由于缺少 Cairo 和可能的其他依赖项而失败。虽然这将是我的首选方法,但它可能是最难实现的。
使用MSYS2允许我通过 mingw64 python 使用 GObject,但使用 pip 获取我的其他模块(如 pylint)失败。无论如何,我想在我的系统上安装 MSYS2 或类似的安装来制作一些 Windows 二进制文件,所以我对此也非常开放。
Windows 版 PyGObject 充其量看起来很混乱,而且不是最新的。无论如何都需要安装第二个 python,比 MSYS2 没有任何好处。
请注意,我是 Unix 的完全新手,一般对 CLI 的经验很少,因此需要像对孩子一样解释有关 MSYS2 的任何帮助。我对这些东西的唯一其他体验涉及到无尽的地狱循环,将 Arch 安装到一个单独的分区,破坏所说的安装,然后再次重新安装。
我也尝试过 Cygwin,但我根本无法通过我的“安装所有需要的包然后祈祷”方法来运行带有 GObject 的 Python。创建一个 Gtk.Window() 导致终端不使用它拥有的任何内存并爆炸。
我在一个单独的文件中从头开始重写了整个类,一切都神奇地工作,条件等等。所以,我只是将这个类和几个函数从新文件导入到主文件中。我仍然不知道第一次出了什么问题。
请注意,以下问题已在技术上得到解决。您可以在代码底部看到拼写错误。但是,这发现了一个问题,即我的所有条件(if、try 等)都停止运行,这就是我在单独的模块中重新编写该类的原因
我会删除这篇文章,因为它让每个人都无处可去,但这显然不是 Stack Overflow 上的工作方式。
好的,我一直在学习 Python 3.4 并决定做一些功课作为练习。我开始制作一个脚本来模拟两个人的战斗,然后用我学到的任何新东西(例如添加一个 GUI)来扩展它。
脚本开始时很好,但我所做的更改越多,出现的错误就越多。现在到了我无法访问“战斗机”类的任何字段而不抛出错误的地步,例如:
'duelist' object has no attribute '_duelist__health'
Run Code Online (Sandbox Code Playgroud)
除了“ 'duelist' 对象没有属性'_duelist__XXX' ”之外,除了拼写错误之外,我还有 0 个其他错误。不幸的是,谷歌无法帮助解决这个问题,所以这就是我发表我的第一篇 StackOverflow 帖子的原因。
这是第一个错误快乐字段“健康”的类:
class duelist:
def __init__(self):
self.name = "Duelist" #must not be ""
self.health = 5 #must be >0
self.damage = [1, 3] #random attack range. Must be >=0 0 and the first must not be higher.
self.skill = 10 #% chance to pass a skill check. Representative of parrying/dodging. …Run Code Online (Sandbox Code Playgroud)