Публикации по теме 'cpython'


API Python / C: краткое введение
API Python / C: краткое введение Python / C API объединяет две из двух моих любимых вещей: Python и C. Что это? Python / C API позволяет программистам на C встраивать Python непосредственно в код C, раскрывая аспекты внутренних компонентов CPython . Он обеспечивает прямой доступ к интерпретатору Python из C, действуя как мост между двумя языками. Пример Этот код C вызывает Python platform.system () . В моей системе этот код распечатывает: Platform name is Darwin..

Указатели? В моем питоне?
Это третья часть серии из трех статей, посвященных различным аспектам управления памятью в Python. Это началось с выступления на конференции, которое я сделал в 2021 году, под названием Указатели? In My Python? , а самую последнюю его запись можно найти здесь . Ознакомьтесь с Частью 1 и Частью 2 этой серии — или прочитайте обсуждение времени жизни объектов, подсчета ссылок и сборки мусора в CPython! Как CPython может определить, когда вы закончили работу с объектом, и что..

Вопросы по теме 'cpython'

Готовые к производству реализации Python, помимо CPython?
За исключением CPython, какие другие реализации Python в настоящее время можно использовать для производственных систем? Вопросы Каковы плюсы и минусы различных Python реализации? Я пытался разобраться в проекте PyPy. Итак, перенесемся...
1187 просмотров
schedule 13.11.2022

Объект Python не имеет рефереров, но все еще доступен через слабую ссылку?
Должна ли быть возможность для gc.get_referrers(obj) возвращать пустой список для объекта, но объект по-прежнему доступен через слабую ссылку? Если да, то как мне начать пытаться определить причину того, что этот объект не собирает мусор?...
1974 просмотров
schedule 02.06.2023

_PyString_Resize перераспределяет память?
Я работаю над модулем расширения Python C (для CPython 2.5). Он вызывает некоторый базовый сетевой API, который заполняет буфер. В настоящее время код написан в основном следующим образом: PyObject * buffer; char * cbuf; size_t buffer_size =...
389 просмотров
schedule 30.04.2023

Почему Python timeit() выполняется бесконечно?
При попытке использовать встроенный модуль Python «timeit» следующим образом: timeit.Timer('print "hi"').timeit() печатает более одной строки; это почему? Он продолжает печатать «привет» бесконечно: hi hi hi hi ...
963 просмотров
schedule 16.01.2023

Параллельный запуск двух скриптов Python с помощью boost::python
У меня проблема с моим (игровым) приложением, которое использует Boost.Python, когда дело доходит до скриптовой части. У меня есть клиентский поток и серверный поток, которые выполняются в одном и том же процессе, если вы не подключаетесь к внешнему...
600 просмотров

Почему код Python работает быстрее в функции?
def main(): for i in xrange(10**8): pass main() Этот фрагмент кода в Python запускается (Примечание: время определяется функцией времени в BASH в Linux.) real 0m1.841s user 0m1.828s sys 0m0.012s Однако, если цикл...
71571 просмотров

CPython: Почему нижний (строковый метод) создает новые ячейки памяти?
Что тут происходит?: >>> a, b, c = ("TEST", "test", "TEST".lower()) >>> map(id, [a,b,c]) [140341845003072, 140341845003216, 140341845003264] >>> map(str, [a,b,c]) ['TEST', 'test', 'test'] >>> map(type, [a,b,c])...
53 просмотров
schedule 11.12.2022

Вызов функции Python из потока C с изменяемым массивом C
Я занимаюсь созданием расширения Python для небольшой аудиобиблиотеки, написанной на C++. При открытии аудиопотока функция обратного вызова передается в качестве параметра (среди прочих параметров, конечно). Немного упрощенный вариант использования:...
482 просмотров
schedule 01.11.2022

Заставить модули запускаться в PyPy из скрипта CPython (запускать PyPy в части кода)?
Есть ли способ импортировать модули из скрипта CPython, но запускать их в PyPy? Проблема в том, что у меня есть код, который использует много SciPy (и NumPy), но есть части кода, которые можно оптимизировать с помощью PyPy. Вот случайный пример...
368 просмотров
schedule 14.12.2022

Сборка Python из исходных текстов как фреймворка в Mac OS X Mountain Lion: ошибка в заголовках
Я собирал Python (версия 3.4 для разработчиков) из исходников в качестве фреймворка для OS X 10.8. Я относительно новичок во внутреннем устройстве Mac OS X и не мог понять, почему заголовки фреймворка OS X вызывают эти ошибки. Может кто-нибудь дать...
470 просмотров

Как распространять расширение cpython, которое загружается в несколько версий python?
Мы создаем программное расширение для нескольких 3D-приложений в виде плагина. Для платформ, для которых мы не можем явно написать плагин, мы работаем над расширением cpython, которое позволит клиентам использовать наши функции в их любимых...
90 просмотров
schedule 16.05.2023

Почему итерация по небольшой строке выполняется медленнее, чем по небольшому списку?
Я играл с timeit и заметил, что выполнение простого понимания списка для небольшой строки занимает больше времени, чем выполнение той же операции для списка небольших строк с одним символом. Любое объяснение? Это почти в 1,35 раза больше времени....
14575 просмотров

Случай сбоя оптимизации добавления строки CPython
Вопрос Почему в CPython def add_string(n): s = '' for _ in range(n): s += ' ' занять линейное время, но def add_string_in_list(n): l = [''] for _ in range(n): l[0] += ' ' взять квадратичное время?...
607 просмотров
schedule 07.07.2023

Функция умножения медленнее в Numba, чем в CPython
Я написал следующий код в python from numba import * def mul(a, b): return a * b @jit def numba_mul(a, b): return a * b @jit(int_(int_, int_)) def numba_mul2(a, b): return a * b и получил следующий результат In [3]:...
133 просмотров
schedule 25.06.2023

Почему строка startwith медленнее, чем in?
Удивительно, но я обнаружил, что startswith медленнее, чем in : In [10]: s="ABCD"*10 In [11]: %timeit s.startswith("XYZ") 1000000 loops, best of 3: 307 ns per loop In [12]: %timeit "XYZ" in s 10000000 loops, best of 3: 81.7 ns per loop...
4043 просмотров

Тесты для CPython
Я изучаю потенциальное изменение в кодовой базе CPython, которое, как я надеюсь, может дать некоторые преимущества в производительности. Однако, хотя в системе сборки есть много тестов функциональности , я не могу найти ничего общего с тестированием...
74 просмотров

Почему CPython 3.4.3 не может импортировать модуль _socket?
У меня есть программа на C++ со встроенным python 3.4.3+. Я пытаюсь запустить скрипт, который использует модуль с именем requests , этот модуль зависит от socket , но встроенный интерпретатор не может импортировать _socket Версия Python и стек...
611 просмотров
schedule 01.04.2023

Каковы правила интернирования строк cpython?
В python 3.5 можно ли предсказать, когда мы получим интернированную строку или когда мы получим копию? Прочитав несколько ответов о переполнении стека по этому вопросу, я обнаружил, что -sometimes-produce/1504848#1504848">этот самый полезный, но...
333 просмотров
schedule 09.04.2023

Почему код с промежуточными переменными быстрее, чем код без них?
Я столкнулся с этим странным поведением и не смог его объяснить. Это ориентиры: py -3 -m timeit "tuple(range(2000)) == tuple(range(2000))" 10000 loops, best of 3: 97.7 usec per loop py -3 -m timeit "a = tuple(range(2000)); b =...
6125 просмотров

Предустановленный python на Mac cpython?
Как следует из названия, я хочу знать, является ли python, предварительно установленный на Mac, cpython. Я имею в виду, что логика говорит, что это, вероятно, так, но я не мог найти нигде официально написанного, поэтому хотел подтвердить. Я хочу...
407 просмотров
schedule 10.05.2023