Can';t在嵌入式Python中导入特定模块

Can';t在嵌入式Python中导入特定模块,python,objective-c,import,Python,Objective C,Import,我正在Obj-C中运行一个嵌入式Python解释器。我可以很好地运行Python脚本,但是当我尝试导入某些标准模块时,我得到了ImportError:例如,没有名为random的模块 但是,我可以导入某些其他模块。到目前为止,我的调查给了我以下清单: 可以: 导入系统 输入数学 导入日期时间 导入时间 不能: 随机输入 进口稀土 导入cmath 进口编号 导入字符串 这来自封装在包中的python文件,通过PyImport_Import('package.module')导入。有一个扩展

我正在Obj-C中运行一个嵌入式Python解释器。我可以很好地运行Python脚本,但是当我尝试导入某些标准模块时,我得到了
ImportError:例如,没有名为random的模块

但是,我可以导入某些其他模块。到目前为止,我的调查给了我以下清单:

可以:

  • 导入系统
  • 输入数学
  • 导入日期时间
  • 导入时间
不能:

  • 随机输入
  • 进口稀土
  • 导入cmath
  • 进口编号
  • 导入字符串
这来自封装在包中的python文件,通过PyImport_Import('package.module')导入。有一个扩展模块通过Py_InitModule加载


这是在Python2.7.0上实现的-有没有任何原因使这些模块中的一些可用,而另一些不可用?

Thomas K使我走上了正确的道路,尽管问题完全相反

我的Python安装程序缺少标准的Python库——用Python编写的部分(通常通过发行版中的/library、/Lib或/pylib分发)。一旦这些文件添加到我的应用程序中,所有文件都可以导入


因此,上面的可导入模块和不可导入模块之间的联系是,可导入模块是用C语言编写的Python扩展,而不可导入模块是用纯Python编写的。

也许这些模块还没有包含在您正在运行的端口中?乍一看,这些模块可能都需要编译的组件(当然是re和cmath做的)这可能没有被移植。很好的发现。原来我没有包括Python标准库(在/pylib中的那些有趣的文件…)。现在我有了随机运行,但在os.py中加载它会中断。但这是另一个问题!您是否有机会分享如何在obj-c中运行嵌入式python解释器?我一直遇到与您类似的问题