pybind11“Python是64位,选择编译器是32位”

时间:2017-07-30 08:44:36

标签: visual-studio-2015 cmake pybind11

我正在尝试在安装了VisualStudio 2015的Windows计算机上编译pybind11。我还安装了python 3.5.3 64bit,以及cmake 2.8.12。我收到错误:

CMake Error at tools/FindPythonLibsNew.cmake:122 (message):
  Python config failure: Python is 64-bit, chosen compiler is 32-bit
Call Stack (most recent call first):
  tools/pybind11Tools.cmake:16 (find_package)
  CMakeLists.txt:28 (include)

我没有“选择”编译器为32位,并且查看CMakeLists.txt,我没有找到任何指定运行哪个编译器的地方。 那么如何告诉pybind11 / cmake为64位编译?

3 个答案:

答案 0 :(得分:3)

您应该像这样指定64位VS编译器:

from pyspark.sql.functions import lpad
>>> df.select('id',lpad(df['value'],4,'0').alias('value')).show()
+---+-----+
| id|value|
+---+-----+
|  1| 0103|
|  2| 1504|
|  3| 0001|
+---+-----+

否则默认选择32位。

答案 1 :(得分:1)

如果使用的是Ninja生成器,并且出现此错误,请确保在64位模式下运行VS Dev命令提示符:

@Query("SELECT u.username FROM User u WHERE u.username LIKE %?1%")
List<String> findUsersWithPartOfName(@Param("username") String username);

答案 2 :(得分:0)

您可以执行以下操作:

cmake .. -G"Visual Studio 14 2015 Win64"
cmake --build . --config Release --target check

或基于“为Windows编译测试用例”部分here的引用:

如果所有测试均失败,请确保Python二进制文件和测试用例 会针对相同的处理器类型和位进行编译(即i386 或x86_64)。您可以将x86_64指定为 使用cmake -A x64生成Visual Studio项目。

您可以:

cmake -A x64 ..
cmake --build . --config Release --target check