Python中如何导入math模块?

3

我想将之前在Windows上编写的Python代码运行在我的DS上。我正在使用(DSPython),当我尝试导入math时,它失败并显示“ImportError: No module named math”。 我已经获取了大多数不依赖于math的其他模块的工作。但是math通常是一个内置模块,所以我不能仅仅在我的PC上找到math.py然后复制它。有没有建议我可以找到替代内置math模块的另一种方法来执行相同的功能?


你试过联系DSPython的开发者吗?可能他还没有处理这个问题。表达出你的兴趣(和愿意提供帮助)可能会得到足够的信息,让你自己开始解决它。 - Michael Kohne
3
这个项目已经超过16个月没有更新了,但源代码是可以获取的。从阅读文档来看,它显得很混乱。作者警告说,在按照他的构建过程时,几个程序会崩溃或出现错误,你应该简单地忽略它们。他还解释了如何将一切组合在一起,并且试图更改任何文件都可能导致意外的结果。在我看来,添加任何新功能并进行重建将是一场噩梦。此时,我倾向于在Python中制作自己的数学模块。但我会接受任何更容易的方法。 - Ponkadoodle
1
这将取决于您需要多少 math 模块的方法。如果只需要 math.sqrt(或类似的内容),那么可以简单地使用 sqrt = lambda x: x ** (1./x)。如果您需要大量函数和/或快速版本,那么确实应该尝试交叉编译。我已经为 NDS 交叉编译了很多软件,并且使用正确的工具链并不难。我甚至编写了程序来破解需要大量数学计算的 wep/wpa(speedtouch)网络。为了我的努力,我使用了 DSLinux,它还允许您运行 Python。 - Wolph
太棒了!我知道你可以通过DSLinux运行Python,但我对Linux不够熟悉,无法设置它。你能给我指一条教程吗?速度不是问题。但是,我需要使用随机模块,这需要很多数学函数。(另外,我相信 sqrt(x) = x ** 0.5 - Ponkadoodle
@WoLpH(我认为我需要将我的帖子地址写给 WoLpH,这样 Stack Overflow 才会将其视为回复他的帖子) - Ponkadoodle
是的,确实如此。@WoLpH 很有帮助 ;)第一部分只需按照此教程操作:http://dslinux.org/cgi-bin/moin.cgi/RunningDSLinux之后... 难点开始了,您需要交叉编译 Python。您可以使用移植教程来设置工具链并编译 Python:http://dslinux.org/cgi-bin/moin.cgi/PortingHowto至于 sqrt... 您完全正确,显然我在回复时已经很晚了 ;) - Wolph
2个回答

1
上个月dspython进行了整体项目清理,包括你提到的问题在内的几个问题都得到了解决。
如果您仍然有兴趣在您的DS中运行Python代码,现在是一个好时机再次尝试。贡献者还编写了一些小的示例程序,这些程序是您使用的良好起点 - 它们也可以让您了解到目前已实现了什么。

谢谢您抽出时间通知我。 - Ponkadoodle

0
你最好的选择是使用Pyrex封装NDS C库,并创建自己的数学模块。dspython的其余部分。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接