我有一个项目结构,比如:
pgmpy/
|-- pgmpy
| |-- BayesianModel
| | |-- BayesianModel.py
| | |-- __init__.py
| |-- Exceptions
| | |-- Exceptions.py
| | |-- __init__.py
| |-- Factor
| | |-- CPD.py
| | |-- _factor_product.c
| | |-- _factor_product.pyx
| | |-- Factor.py
| | |-- __init__.py
| |-- Independencies
| | |-- Independencies.py
| | |-- __init__.py
| |-- __init__.py
| |-- MarkovModel
| | |-- __init__.py
| | |-- MarkovModel.py
| |-- readwrite
| | |-- __init__.py
| | |-- ProbModelXML.py
| `-- tests
| |-- help_functions.py
| |-- test_BayesianModel.py
| `-- test_Independencies.py
`-- setup.py因子dir包含一个.pyx文件。当我使用setup.py安装pgmpy时,它使用Cython进行编译,并在python的dist-packages dir中创建一个共享对象文件。但是,由于这个共享对象文件在项目dir中不可用,因此从这个dir运行nosetests会产生一个错误,即它无法导入cython文件。从任何其他目录运行nosetest都很好。
我应该做什么来确保nosetest也从项目dir运行?
发布于 2014-03-06 04:25:59
我看了一下您的项目,尝试将setup的导入从distutils.core更改为setuptools,因为distutils没有提供有用的功能,比如python setup.py develop --这将将.so文件构建到pgmpy/Factor/_factor_product.cpython-33m.so中,然后可以用于导入。
https://stackoverflow.com/questions/22214022
复制相似问题