У меня есть простой cpp файл, который я пытаюсь использовать pybind11:scoped_interpreter guard{}
в:
#include <pybind11/embed.h>
void main() {
pybind11::scoped_interpreter guard{};
pybind11::exec("print('hello world')");
}
Код отлично компилируется в pybind11app.exe. Однако, когда я пытаюсь запустить его из powershell 7, используя .\pybind11app.exe
, я получаю следующую ошибку:
Python path configuration:
PYTHONHOME = (not set)
PYTHONPATH = (not set)
program name = 'python'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = 'C:\\Users\\ben.wolfley\\Desktop\\Test3\\vsstudio\\Debug\\pybind11app.exe'
sys.base_prefix = 'C:\\Users\\ben.wolfley\\Anaconda3'
sys.base_exec_prefix = 'C:\\Users\\ben.wolfley\\Anaconda3'
sys.executable = 'C:\\Users\\ben.wolfley\\Desktop\\Test3\\vsstudio\\Debug\\pybind11app.exe'
sys.prefix = 'C:\\Users\\ben.wolfley\\Anaconda3'
sys.exec_prefix = 'C:\\Users\\ben.wolfley\\Anaconda3'
sys.path = [
'C:\\Users\\ben.wolfley\\Anaconda3\\python38.zip',
'.\\DLLs',
'.\\lib',
'C:\\Users\\ben.wolfley\\Desktop\\Test3\\vsstudio\\Debug',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Если я пытаюсь отладить код в VS 2017, я получаю всплывающее окно с сообщением «Код выполнение не может продолжаться, потому что python38.dll не найден ". Это дает эту ошибку как с «Local Windows Debugger», так и с «Python / Native Debugger».
У меня установлен python 3.8 из anaconda. И python38.dll, и python .exe живут в C:\Users\ben.wolfley\Anaconda3
. Я также убедился, что C:\Users\ben.wolfley\Anaconda3
находится в моей переменной среды Path.
Любая помощь в разрешении этой ошибки будет принята с благодарностью.