Публикации по теме '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 просмотров
schedule
03.05.2023
Почему код Python работает быстрее в функции?
def main():
for i in xrange(10**8):
pass
main()
Этот фрагмент кода в Python запускается (Примечание: время определяется функцией времени в BASH в Linux.)
real 0m1.841s
user 0m1.828s
sys 0m0.012s
Однако, если цикл...
71571 просмотров
schedule
18.03.2023
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 просмотров
schedule
13.02.2023
Как распространять расширение cpython, которое загружается в несколько версий python?
Мы создаем программное расширение для нескольких 3D-приложений в виде плагина. Для платформ, для которых мы не можем явно написать плагин, мы работаем над расширением cpython, которое позволит клиентам использовать наши функции в их любимых...
90 просмотров
schedule
16.05.2023
Почему итерация по небольшой строке выполняется медленнее, чем по небольшому списку?
Я играл с timeit и заметил, что выполнение простого понимания списка для небольшой строки занимает больше времени, чем выполнение той же операции для списка небольших строк с одним символом. Любое объяснение? Это почти в 1,35 раза больше времени....
14575 просмотров
schedule
28.12.2022
Случай сбоя оптимизации добавления строки 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 просмотров
schedule
06.08.2023
Тесты для CPython
Я изучаю потенциальное изменение в кодовой базе CPython, которое, как я надеюсь, может дать некоторые преимущества в производительности. Однако, хотя в системе сборки есть много тестов функциональности , я не могу найти ничего общего с тестированием...
74 просмотров
schedule
06.03.2023
Почему 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 просмотров
schedule
08.07.2023
Предустановленный python на Mac cpython?
Как следует из названия, я хочу знать, является ли python, предварительно установленный на Mac, cpython. Я имею в виду, что логика говорит, что это, вероятно, так, но я не мог найти нигде официально написанного, поэтому хотел подтвердить. Я хочу...
407 просмотров
schedule
10.05.2023