设置 pip 安装程序要使用的 C 编译器标志

fab*_*iob 6 python pip intel compiler-flags

我想在集群上创建一个包含一些 python 包的虚拟环境,其中有不同的英特尔处理器可用(例如 sandy bridge old和 haswell new)。必须从其中进行安装的登录节点是 haswell。

所以我:

pip install virtualenv
cd my_project_folder
virtualenv my_project
Run Code Online (Sandbox Code Playgroud)

如果我这样做,当我登录到沙桥并运行 python 时,我得到:

请确认操作系统和处理器均支持 Intel(R) MOVBE、F16C、FMA、BMI、LZCNT 和 AVX2 指令。

因为 python 可执行文件是使用仅适用于 haswell 节点的编译器标志创建的。我可以告诉 virtualenv 我想使用的 python 可执行文件:

virtualenv -p /usr/bin/python2.7 my_project
Run Code Online (Sandbox Code Playgroud)

但是当我

pip install numpy
Run Code Online (Sandbox Code Playgroud)

他找到并采用了它的haswell编译版本,它不会再次在沙桥拱上运行。

如何指示 pip 不使用使用 haswell 标志编译的包?

出于某些原因,我可以解释我无法使用沙桥处理器创建 virtenv。