, когда я запускаю pip install .
в каталоге, где у меня есть файл setup.py. Я использую pybind11 для создания модуля python для моего проекта C ++. (также на windows 10)
Я получаю эту ошибку: https://pastebin.com/xGyFQQk2
Вот модуль. cpp код:
Environment pyInitEnvironment(const py::list& pyList, const unsigned int allowedLayers, const unsigned int padding, const unsigned int maxTracersPerGroup) {
return Environment(listToContactVertexGroup(pyList), allowedLayers, padding, maxTracersPerGroup);
}
PYBIND11_MODULE(route_search_superfast, m) {
py::class_<Environment>(m, "Environment")
.def(py::init(&pyInitEnvironment));
py::class_<RandomModel>(m, "RandomModel");
}
А вот мои setup.py:
import os, sys
from distutils.core import setup, Extension
from distutils import sysconfig
cpp_args = ['-std=c++11', '-stdlib=libc++', '-mmacosx-version-min=10.7']
rss_module = Extension(
'route_search_superfast',
sources=['module.cpp'],
include_dirs=['pybind11/include'],
language='c++',
extra_compile_args = cpp_args,
)
setup(
name = 'route_search_superfast',
version = '1.0',
description = 'Python package with superfastcode2 C++ extension (PyBind11)',
ext_modules = [rss_module],
)
Единственное, что не хочет создавать, это мои файлы Environment.h & Environment. cpp. Они довольно длинные, но я могу заверить вас, что Visual Studio их создает. Все отлично работает. Я даже могу сгенерировать выходной файл .pyd и импортировать его в python, и он будет работать все. Тем не менее, когда я пытаюсь заставить сценарий установки собрать проект C ++, он выбрасывает этот консольный стек (снова, найденный здесь: https://pastebin.com/xGyFQQk2)
Так как файл .pyd работает (снова Я могу импортировать это в python и все работает отлично) Есть ли способ, которым я могу использовать distutils, чтобы просто использовать .pyd при локальной установке пакета?