Как делают я импортирую модули в повышении:: Python встроил код Python?

Вы можете использовать это регулярное выражение, чтобы получить формат гггг-ММ-дд: ((?: 19 | 20) \ d \ d) - (0? [1-9] | 1 [012]) - ([12] [0-9] | 3 [01] | 0? [1-9])

Вы можете найти пример проверки даты: Как проверить дату с помощью регулярного выражения.

11
задан Piotr Dobrogost 9 July 2009 в 21:02
поделиться

3 ответа

Это не помогло, но я нашел другое решение своей проблемы. Мой текущий код выглядит так:

#include <boost/python.hpp>
#include <iostream>

using namespace std;
using namespace boost;
using namespace boost::python;
using namespace boost::python::api;

int main(void) {
        Py_Initialize();
        boost::python::object http = boost::python::import("urllib2");

        try
        {
                boost::python::object response = http.attr("urlopen")("http://www.google.com");
                boost::python::object read = response.attr("read")();
                std::string strResponse = boost::python::extract<string>(read);
                cout << strResponse << endl;
        }
        catch(...)
        {
                PyErr_Print();
                PyErr_Clear();
        }
}

В любом случае, спасибо за ответ, Джонас

3
ответ дан 3 December 2019 в 10:45
поделиться

Если вы еще этого не сделали, вам нужно

import sys
sys.path.append("/home/user/whatever")

Это решило мои проблемы пару лет назад при встраивании boost :: python (Python v2.5).

Изменить:

Покопался в старом коде. Возможно, это поможет:

Py_SetProgramName(argv[0]);
Py_InitializeEx(0);

Звучит неуверенно, что вам действительно понадобится Py_SetProgramName () , но я смутно припоминаю некоторые подозрительные дела.

5
ответ дан 3 December 2019 в 10:45
поделиться

I ran into the same problem as you, i e a very simple example resulting in the TypeError, and found the answer in this question, which was to supply the namespace twice, both as global and local.

0
ответ дан 3 December 2019 в 10:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: