无法在嵌入式Python中导入特定模块
我在用Obj-C运行一个嵌入式的Python解释器。我可以顺利运行Python脚本,但当我尝试导入某些标准模块时,比如说ImportError: No module named random
,就会出现错误。
不过,我可以导入其他一些模块。经过我的调查,目前我得到了以下这个列表:
可以导入:
- import sys
- import math
- import datetime
- import time
不能导入:
- import random
- import re
- import cmath
- import numbers
- import string
这些模块是从一个封装在包里的Python文件中导入的,通过PyImport_Import ('package.module')来实现的。还有一个扩展模块是通过Py_InitModule加载的。
我使用的是Python 2.7.0,为什么有些模块可以用而有些不可以呢?
1 个回答
0
Thomas K让我找到了正确的方向,尽管我的问题其实是完全相反的。
我的Python环境缺少了标准的Python库,也就是用Python写的那部分(通常会放在/Library、/Lib或者/pylib这些地方)。一旦把这些文件添加到我的应用程序里,所有的东西都能正常导入了。
所以,上面提到的可导入和不可导入的模块之间的关系是:可导入的模块是用C语言写的Python扩展,而不可导入的模块则是用纯Python写的。