【发布时间】:2011-11-22 10:55:03
【问题描述】:
我正在尝试运行 Hadoopy,它有一个文件 _main.pyx,而 import _main 因在 __init__.py 中找不到模块而失败。
我正在尝试在带有标准 python 2.7 的 OS X 上运行它。
【问题讨论】:
我正在尝试运行 Hadoopy,它有一个文件 _main.pyx,而 import _main 因在 __init__.py 中找不到模块而失败。
我正在尝试在带有标准 python 2.7 的 OS X 上运行它。
【问题讨论】:
您需要确保您已遵循所有步骤:
使用pip 安装 Cython 包
pip install Cython
创建一个 Cython 文件bbox.pyx
cimport cython
import numpy as np
cimport numpy as np
DTYPE = np.float32
ctypedef np.float32_t DTYPE_t
@cython.boundscheck(False)
def compare_bboxes(
np.ndarray[DTYPE_t, ndim=2] boxes1,
np.ndarray[DTYPE_t, ndim=2] boxes2):
...
在同一目录下创建setup.py
from distutils.core import setup, Extension
from Cython.Build import cythonize
import numpy
package = Extension('bbox', ['bbox.pyx'], include_dirs=[numpy.get_include()])
setup(ext_modules=cythonize([package]))
构建 Cython
python3 setup.py build_ext --inplace
在同一目录中创建您的主要python脚本run.py
import pyximport
pyximport.install(setup_args={"script_args" : ["--verbose"]})
from bbox import compare_bboxes
def main(args):
boxes1 = args.boxes1
boxes2 = args.boxes2
result = compare_bboxes(boxes1, boxes2)
在同一目录中运行您的主脚本
python run.py
【讨论】:
在尝试导入 _main 之前添加此代码:
import pyximport
pyximport.install()
请注意,pyximport 是 Cython 的一部分,因此如果尚未安装,则必须安装它。
【讨论】:
pip install Cython 或 2. 转到 cython.org.,下载并运行 python setup.py install 或 3. 运行 pip install Cython --install-option="--no-cython-compile"
has no attribute {function name}。我的.pyx 是cythonized python,我可以从中获取.so 和.c 文件。