我正在开发一个名为“lehmer”的Python包,其中包含一堆用C编写的扩展模块。目前,我有一个扩展模块“rng”。我正在使用Python的Distutils来构建和安装模块。我可以编译并安装模块,但是当我尝试使用import lehmer.rng
或from lehmer import rng
导入模块时,Python解释器会抛出ImportError
异常。我可以输入“lehmer”罚款。
以下是我的setup.py
文件的内容:
from distutils.core import setup, Extension
exts = [Extension("rng", ["lehmer/rng.c"])]
setup(name="lehmer",
version="0.1",
description="A Lehmer random number generator",
author="Steve Park, Dave Geyer, and Michael Dippery",
maintainer="Michael Dippery",
maintainer_email="mpd@cs.wm.edu",
packages=["lehmer"],
ext_package="lehmer",
ext_modules=exts)
当我列出Python的site-packages
目录的内容时,我看到以下内容:
th107c-4 lehmer $ ls /scratch/usr/lib64/python2.5/site-packages/lehmer
__init__.py __init__.pyc rng.so*
我的PYTHONPATH
环境变量设置正确,所以这不是问题(如前所述,我可以import lehmer
就好了,所以我知道 {{1不是问题)。 Python使用以下搜索路径(由PYTHONPATH
报告):
sys.path
在OpenSUSE 10盒子上使用时可以正常工作,但在Mac OS X上测试时,C扩展仍然无法加载。以下是Python解释器的结果:
['', '/scratch/usr/lib64/python2.5/site-packages', '/usr/lib/python25.zip', '/usr/lib64/python2.5', '/usr/lib64/python2.5/plat-linux2', '/usr/lib64/python2.5/lib-tk', '/usr/lib64/python2.5/lib-dynload', '/usr/lib64/python2.5/site-packages', '/usr/lib64/python2.5/site-packages/Numeric', '/usr/lib64/python2.5/site-packages/PIL', '/usr/lib64/python2.5/site-packages/SaX', '/usr/lib64/python2.5/site-packages/gtk-2.0', '/usr/lib64/python2.5/site-packages/wx-2.8-gtk2-unicode', '/usr/local/lib64/python2.5/site-packages']
答案 0 :(得分:3)
为了记录(因为我厌倦了看到这标记为未答复),这里出现了问题: