运行 单元测试时 Cython 库的导入冲突
Import conflict for Cython library when running unittests
我正在开发一个用 C、Python 和 Cython 编写的 Python 库。
我之前只在 python 上编写过同一个库的测试,但现在需要编译该库才能导入它。
当我尝试在使用 python3 setup.py install
构建 unittest 文件后导入库时,我遇到 ImportError
指出无法导入 Cython 文件。
原因是因为它尝试导入的文件是尚未编译的文件。库已编译,但导入系统更喜欢同一项目目录下的文件,而不是来自 site-packages
.
遇到这种情况我该怎么办?我希望能够 运行 在本地和 CI 上进行我的单元测试。
这是我的项目结构以及出现错误的地方:
lib-name:
-lib-name/
module.pyx
main.py (imports module.pyx)
-tests/
test_lib_name.py (imports lib-name, raises ImportError because main.py can't import module.pyx)
谢谢!
在导入之前执行此操作(这样 lib 就不会从当前目录加载。):
sys.path.remove('')
导入后执行此操作(返回默认值):
sys.path.append('')
我正在开发一个用 C、Python 和 Cython 编写的 Python 库。 我之前只在 python 上编写过同一个库的测试,但现在需要编译该库才能导入它。
当我尝试在使用 python3 setup.py install
构建 unittest 文件后导入库时,我遇到 ImportError
指出无法导入 Cython 文件。
原因是因为它尝试导入的文件是尚未编译的文件。库已编译,但导入系统更喜欢同一项目目录下的文件,而不是来自 site-packages
.
遇到这种情况我该怎么办?我希望能够 运行 在本地和 CI 上进行我的单元测试。
这是我的项目结构以及出现错误的地方:
lib-name:
-lib-name/
module.pyx
main.py (imports module.pyx)
-tests/
test_lib_name.py (imports lib-name, raises ImportError because main.py can't import module.pyx)
谢谢!
在导入之前执行此操作(这样 lib 就不会从当前目录加载。):
sys.path.remove('')
导入后执行此操作(返回默认值):
sys.path.append('')