Проблема с внедрением Python на C++
Доброе утро сэр,
Я готов встроить Python в свое приложение на C++, для этого я сослался на несколько статей на этом сайте. Наконец, я добился некоторого успеха во внедрении python в свое приложение.
const char* file_location = location.c_str(); FILE* file_pointer; // Initialize the Python interpreter Py_Initialize(); file_pointer = _Py_fopen(file_location, "r"); // Run the Python file PyRun_SimpleFile(file_pointer, file_location); // Finalize the Python interpreter Py_Finalize();
Это код, который у меня есть в моем приложении. этот код отлично работает, когда я использую некоторые распространенные программы, подобные этой,
print("Testing the woking from Python file") print("works good...") print(1+2)
Но когда я пытаюсь импортировать какие либо модули например tkinter даже базовая программа выдает исключение,
Эта программа бросает,
from tkinter import * root = Tk() root.mainloop()
AttributeError: модуль 'sys' не имеет атрибута 'argv'
Я использую Python 3.5.2 и VS2015
Сам Процесс Происходит:
Это метод, который выполняет файл Python,
bool pycompile::execute_python(std::string location) { if (std::ifstream(location)) { try { const char* file_location = location.c_str(); FILE* file_pointer; // Initialize the Python interpreter Py_Initialize(); file_pointer = _Py_fopen(file_location, "r"); // Run the Python file PyRun_SimpleFile(file_pointer, file_location); // Finalize the Python interpreter Py_Finalize(); } catch (...) { std::cout << "exception"; } return true; } return false; }
Что делает приведенный выше код
Как только местоположение файла передано, он выполняется
Содержимое файла Python 1:
print("Python from C++")
Результат:
хорошо работатьтест 2 с другим файлом
from tkinter import * root = Tk() root.mainloop()
Я получаю эту ошибку,
Цитата:корень = Tk()
Файл "C:\Users\User\AppData\Local\Programs\Python\Python35-32\Lib\tkinter\__init__.py", строка 1863, in _ _ init__
базовое имя = ОС.путь.базовое имя(sys файла.аргумент argv[0])
AttributeError: модуль 'sys' не имеет атрибута 'argv'
Что я уже пробовал:
То, что я пробовал, это :
1. Упоминается Google и нашел кое какую информацию, как убедившись, что питон-в путь., и т. д.,
2. Скопировать и вставить как dll файлы tk86t.dll и tcl86t.dll для tkinter рядом с исполняемый файл, но ничего не работает.
Я не знаю сэр что делать любезно помогите мне Спасибо