我一直在研究基于Python / CherryPy的web-app,在此过程中,我需要添加自定义Python模块依赖项。具体来说,我编写了一个C ++库,该库针对我要定位的运行时与Python C API链接(3.6.6)。结果是一个DLL文件,其扩展名重命名为“ pyd”。当我在本地运行我的Web应用程序时,这一切都很好,但当我将应用程序部署到heroku时,这一切都无法正常工作。我的第一个想法是,dyno可以在完全不同的机器体系结构上运行。 .pyd文件针对x86 / 64位,但我不知道什么是dyno硬件,无论是真实的还是虚拟的。出于安全原因,也可能会阻止在Python中进行此类导入。
无论如何,没有人知道如何在heroku平台的Python应用程序中利用这样的定制模块依赖关系吗?我遇到了以下链接...
https://devcenter.heroku.com/articles/python-c-deps
...但是我没有发现它非常有用。什么是码头工人?这项技术如何运作?我是否可以要求我的应用程序在基于Windows的x86 / 64位Python的docker VM映像中运行?很难做到这一点吗?
编辑:作为对此的后续工作,我研究了Windows的docker,并在Windows服务器核心容器中成功运行了Web应用程序及其.PYD依赖项。剩下的一切就是部署到Heroku,事实证明这相当困难。