我正在研究python / django项目。对于部署,我想创建一个ubuntu 16.04 docker镜像。当我在ubuntu本地主机上工作时,我会生成所有wheel文件,它们可用于创建镜像。 (我将所有这些轮子都复制到了docker,所以我在Dockerfile中运行RUN pip3 install --no-cache-dir --no-index -f wheelhouse -r requirements.txt
以使用本地轮子来安装需求。其中wheelehouse
是一个文件夹,我已经将所有本地轮子都复制到了该文件夹。)
但是,当我在macOS主机上创建轮子时,一些生成的轮子就像some_packagename-**macosx_10_6_intel**.whl
一样。因此,它们无法用于创建ubuntu docker镜像。
有没有一种方法可以强制pip wheel
为Linux生成转轮,而不是从macOS上的源文件生成转盘?
最佳答案
如果您没有C扩展名,那么您应该能够:
python setup.py bdist_wheel --universal
获得非平台特定的
some_packagename-X.Y.Z-py2.py3-none-any.whl
如果您有C扩展名,则需要生成平台特定的轮子。
最好的方法是使用Docker(在MacOS上的虚拟机中运行)和manylinux Docker容器为Python 2.7和3.4-3.7生成轮子。
由于创建了
manylinux
容器,因此生成的轮子将安装在许多较旧的Linux版本上。那比启动您自己的Ubuntu XX.04版本(也许在虚拟机中)好,并且不能在使用较旧版本的编译器的任何版本上安装该版本,而不是在您的Ubuntu版本上进行安装。