7
голосов
1ответов
1208 просмотров

Вложенные расширения / модули Python C?

Как скомпилировать модуль C-Python, чтобы он был локальным для другого?Например.если у меня есть модуль с именем «bar» и другой модуль с именем «mymodule», как мне скомпилировать «bar», чтобы он импортировался через «import mymodule.bar»? (Извините, если это неправильно сформулировано, я не з...

23
голосов
1ответов
17763 просмотров

Как передать флаг в gcc в скрипте Python setup.py?

Я пишу расширение Python на языке C, для которого, помимо прочего, требуется фреймворк CoreFoundation.Это прекрасно компилируется с: gcc -o foo foo.c -framework CoreFoundation -framework Python ("-framework" - это расширение gcc только для Apple, но это нормально, потому что я все равно и...

4
голосов
1ответов
759 просмотров

Объяснение макроса PyAPI_DATA ()?

Я искал в Интернете и не может найти документацию или даже простое объяснение того, что делает PyAPI_DATA () (даже если это используется в файлах заголовков Python и цитируется на python.org ).Может ли кто-нибудь объяснить, что это такое, или указать мне на документацию, которую я упускаю? ...

4
голосов
2ответов
1491 просмотров

Макрос PyDateTime_IMPORT не инициализирует переменную PyDateTimeAPI

Я использую Python C API в Windows с помощью Visual Studio 2008. Когда я пытаюсь использовать макрос PyDate_Check и другие связанные макросы, они вызывают нарушение прав доступа, поскольку статическая переменная PyDateTimeAPI имеет значение null.Эта переменная инициализируется с помощью макроса ...

9
голосов
6ответов
3255 просмотров

Python interpreter as a c++ class

I am working on embedding python in to c++. In some peculiar case I require two separate instances of the interpreter in same thread. Can I wrap Python interpreter in to a c++ class and get services from two or more class instances?

21
голосов
1ответов
1671 просмотров

Why does Python keep a reference count on False and True?

I was looking at the source code to the hasattr built-in function and noticed a couple of lines that piqued my interest: Py_INCREF(Py_False); return Py_False; ... Py_INCREF(Py_True); return Py_True; Aren't Py_False and Py_True global values? Just out of sheer curiosity, why is Python keepin...

24
голосов
3ответов
5410 просмотров

Stopping embedded Python

I'm embedding Python interpreter to a C program. However, it might happen that while running some python script via PyRun_SimpleString() will run into infinite loop or execute for too long. Consider PyRun_SimpleString("while 1: pass"); In preventing the main program to block I thought I could run...

5
голосов
4ответов
543 просмотров

Can I use C++ features while extending Python?

The Python manual says that you can create modules for Python in both C and C++. Can you take advantage of things like classes and templates when using C++? Wouldn't it create incompatibilities with the rest of the libraries and with the interpreter?

8
голосов
1ответов
3783 просмотров

Create instance of a python class , declared in python, with C API

I want to create an instance of a Python class defined in the __main__ scope with the C API. For example, the class is called MyClass and is defined as follows: class MyClass: def __init__(self): pass The class type lives under __main__ scope. Within the C application, I want to ...

14
голосов
2ответов
1963 просмотров

Расширение Python C: подписи методов для документации?

Я пишу расширения C и хочу, чтобы сигнатуры моих методов были видны для самоанализа. static PyObject* foo(PyObject *self, PyObject *args) { /* blabla [...] */ } PyDoc_STRVAR( foo_doc, "Great example function\n" "Arguments: (timeout, flags=None)\n" "Doc blahblah doc doc ...

2
голосов
1ответов
1074 просмотров

Доступ к объектам Python в дампе ядра

Есть ли способ узнать значение python для PyObject * из файла ядра в gdb

10
голосов
1ответов
4273 просмотров

Python C API: как получить строковое представление исключения?

Если да (например) open("/snafu/fnord") в Python (а файл не существует) я получаю трассировку и сообщение IOError: [Errno 2] No such file or directory: '/snafu/fnord' Я хотел бы получить указанную выше строку с помощью Python C API (т.е. интерпретатора Python, встроенного в прогр...

1
голосов
1ответов
208 просмотров

Этикет возвращаемых объектов в расширении Python

Я пишу расширение python для обеспечения доступа к данным kstat Solaris (в том же духе, что и поставляемая библиотека Perl Sun :: Solaris :: Kstat), и у меня есть вопрос об условном возврате списка или отдельного объекта. Пример использования python будет выглядеть примерно так: cpu_stats...

8
голосов
2ответов
2910 просмотров

Файловый ввод-вывод в Python 3 C API

C API в Python 3.0 изменил (устарел) многие функции для файловых объектов. Раньше, в 2.X, вы могли использовать PyObject* PyFile_FromString(char *filename, char *mode) для создания файлового объекта Python, например: PyObject *myFile = PyFile_FromString("test.txt", "r"); ... но ...

1
голосов
3ответов
1088 просмотров

Инициализация объекта Python C-API

Как правильно инициализировать объект python в уже существующей памяти (например, inplace new в c ++) Я пробовал этот код, но он вызывает нарушение прав доступа при отладочной сборке, потому что _ob_prev и _ob_next не установлены .. //PyVarObject *mem; -previously allocated memory Py_INCR...

2
голосов
2ответов
2443 просмотров

Любой способ создать матрицу NumPy с C API?

Я прочитал документацию по NumPy C API, которую смог найти, но все еще не смог выяснить, есть ли возможность построить объект матрицы с помощью C API, а не двумерный массив. Функция предназначена для работы с математическими матрицами, и мне не нужны странные результаты, если пользователь вызыва...

7
голосов
2ответов
5757 просмотров

Размещение объектов Python C-API

Я хочу использовать операторы new и delete для создания и уничтожения своих объектов. Проблема в том, что Python, кажется, разбивает ее на несколько этапов. tp_new, tp_init и tp_alloc для создания и tp_del, tp_free и tp_dealloc для уничтожения. Однако в C ++ есть только new, который выделяет ...

4
голосов
1ответов
2673 просмотров

Python c-api и строки Unicode

Мне нужно преобразовать между объектами python и строками c в различных кодировках. Переход от строки c к объекту unicode был довольно простым с использованием PyUnicode_Decode, однако я не уверен, как пойти другим путем //char* can be a wchar_t or any other element size, just make sure it is...

3
голосов
2ответов
1355 просмотров

Создание наследуемого типа Python с помощью PyCxx

В последнее время мы с другом играем с различными оболочками Python C ++, пытаясь найти ту, которая удовлетворяет потребности как профессиональных, так и хобби-проектов. Мы оба отточили PyCxx как хороший баланс между легкостью и простотой взаимодействия при одновременном сокрытии некоторые из ...