Python Can';t在docker中导入我编译的cython模块

Python Can';t在docker中导入我编译的cython模块,python,django,docker,cython,cythonize,Python,Django,Docker,Cython,Cythonize,我可以在windows(visual studio)上成功编译cython模块,并运行使用cython模块的python代码 我可以在linux(gcc/Docker容器)上成功编译cython模块,但是当我运行在windows上运行的相同python代码时,我会遇到ModuleNotFound错误 这是我在linux上的项目结构。编译时,出于某种原因,它将.so文件放在/engine(在windows上不这样做)。这就是我将它移动到BBU计算/计算引擎/引擎中的适当位置后的结构: +-- bb

我可以在windows(visual studio)上成功编译cython模块,并运行使用cython模块的python代码

我可以在linux(gcc/Docker容器)上成功编译cython模块,但是当我运行在windows上运行的相同python代码时,我会遇到ModuleNotFound错误

这是我在linux上的项目结构。编译时,出于某种原因,它将.so文件放在/engine(在windows上不这样做)。这就是我将它移动到BBU计算/计算引擎/引擎中的适当位置后的结构:

+-- bbmajors_compute
|   +-- compute_engine
|   |   +-- engine
|   |   |   +-- __init__.py
|   |   |   +-- compute_cpp.pyx
|   |   |   +-- compute_cpp.pxd
|   |   |   +-- compute_cpp.cpp
|   |   |   +-- compute_cpp.cpython-37m-x86_64-linux-gnu.so
|   |   +-- __init__.py
|   |   +-- views.py
+-- __init__.py
+-- setup.py
这是我的setup.py:

from distutils.core import setup

from Cython.Build import cythonize

setup(ext_modules=cythonize("bbmajors_compute/compute_engine/engine/compute_cpp.pyx"))
以下是build命令:

python ./setup.py build_ext --inplace
以下是尝试导入cython模块的代码(最后一行给出了错误):

以下是错误:

web_1  |   File "/code/bbmajors_compute/compute_engine/views.py", line 14, in <module>
web_1  |     from .engine.compute_cpp import CalculateCombinationsCpp
web_1  | ModuleNotFoundError: No module named 'bbmajors_compute.compute_engine.engine.compute_cpp'
web_1 |文件“/code/bbu_compute/compute_engine/views.py”,第14行,在
web_1| from.engine.compute_cpp导入计算组合cpp
web_1 | ModuleNotFoundError:没有名为'BBU compute.compute_engine.engine.compute_cpp'的模块

感谢您的帮助!我已经研究这个问题有一段时间了…

我有一段时间遇到了类似的问题,我正在努力解决这个问题。幸运的是,我遇到了这一点,这证明非常有用

解决方案可能是在Dockerfile中添加以下行

RUN python setup.py build_ext --inplace

哪个python版本用于运行脚本?你真的应该检查一下!Docker linux容器中的Python 3.7.5,windows上的Python 3.7.3
RUN python setup.py build_ext --inplace