170 похожих чатов

Парни, а в чем может быть трабла? Качнул сорцы 3.10.4,

сделал
./configure --prefix=/home/dan/.local --enable-loadable-sqlite-extensions --enable-optimizations
Потом make, make install.

Дальше так:
which python3
-->> ~/.local/bin/python3
python3 -m pip install --upgrade pip
python3 -m pip install ipython

Но ipython в venv падает с ошибкой:
ipython
Traceback (most recent call last):
File "/home/dan/.local/lib/python3.10/runpy.py", line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/home/dan/.local/lib/python3.10/runpy.py", line 146, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/home/dan/.local/lib/python3.10/runpy.py", line 110, in _get_module_details
__import__(pkg_name)
File "/home/dan/.local/lib/python3.10/site-packages/IPython/__init__.py", line 53, in <module>
from .terminal.embed import embed
File "/home/dan/.local/lib/python3.10/site-packages/IPython/terminal/embed.py", line 15, in <module>
from IPython.core.interactiveshell import DummyMod, InteractiveShell
File "/home/dan/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 73, in <module>
from IPython.core.history import HistoryManager
File "/home/dan/.local/lib/python3.10/site-packages/IPython/core/history.py", line 11, in <module>
import sqlite3
File "/home/dan/.local/lib/python3.10/sqlite3/__init__.py", line 57, in <module>
from sqlite3.dbapi2 import *
File "/home/dan/.local/lib/python3.10/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

Гуглы говорят скомпилить с --enable-loadable-sqlite-extensions, но я так и сделал.
Запуск через python3 -m IPython аналогичный.
Установка модуля pysqlite3 тоже не помогла

В системном (3.6.8) питоне всё работает

25 ответов

33 просмотра

https://t.me/ru_python_beginners/1971496

Dan-😼A Автор вопроса
Tishka17
https://t.me/ru_python_beginners/1971496

эммм, если откинуть глупость пункта 4, потому как я не собираю пакет в системную директорию, очевидность и бесполезность пункта 5 - остается незакрытыми два вопроса, направление для получения ответа на которые я не постесняюсь спросить: Вопрос 2: как узнать, как именно собран системный пайтон? Вопрос 3: нужно смотреть все чеинджлоги между 3.6.8 и 3.10.4 что бы понять почему ipython падает с sqlite3 error?:)

Dan 😼A
эммм, если откинуть глупость пункта 4, потому как ...

А куда ты собираешь? Если делаешь инсталл, то увы. 2. Посмотреть src пакет, почитать доки от мейнтейнеров дистрибутива, почитать доки о вариантах сборки питона на сайте питона и в хелпе конфигура 3. Нет, для этого скорее всего не надо, но кто знает. В целом я вообще не понимаю зачем собирать из сорцов, когда это неплохо делают другие люди

Почему бы не заюзать докер?

Dan-😼A Автор вопроса
Tishka17
Почему бы не заюзать докер?

почему бы не собрать себе 3.10, в поставить venv и не крутить докера там, где это не нужно?:)

Dan-😼A Автор вопроса
Tishka17
Чтобы не ебать мозг себе :)

ты думаешь, что если я сейчас поставлю 3.9 - ситуация сильно поменяется?

Dan 😼A
почему бы не собрать себе 3.10, в поставить venv и...

Чтобы, например, потом следующий админ не думал как его обновить для исправления секьюрити багов

Dan-😼A Автор вопроса
Tishka17
Чтобы, например, потом следующий админ не думал ка...

следующий админ будет использовать venv в тех вещах, где это необходимо. Более того, я повторюсь, я не собираю системный питон. Всё, что останется от меня по наследству - будет упаковано в venv и сможет быть повторено из гита на любой машине.

Dan 😼A
следующий админ будет использовать venv в тех веща...

1. Как следущий админ будет обновлять питон? Снова собирать из сорцов? Как он вообще узнает куда питон установлен, если пакетный менеджер об этом не знает 2. Венв это не для питона, это для либ 3. "Упаковано в венв" и "Повторено из Гита"? У меня смутные подозрения, что ты не вполне знаешь про венв

Dan-😼A Автор вопроса

1. Да как захочет. Будет необходимость - будет из сорцов. Или качать готовые бинари. Админу нет необходимости знать, куда установлен питон. Ему нужно знать, на какой версии питона оно раньше работало. И найти себе такую же. Ну или разбираться, почему не работает на его. 2. venv это способ ограничения неимспейса для процесса. Он копирует туда и свой бинарь, и те либы, которые ты поставишь внутри. 3. Ну вот тут я не знаю как это правильно назвать. Но да, в этом контексте - скачать код с гитхаба, активировать venv с соответствующей версией питона, поставить либы из реквайрементсов и запустить

Dan 😼A
1. Да как захочет. Будет необходимость - будет из ...

Как хочет? Пожалуйста, не занимаетесь администрированием серверов

Dan 😼A
1. Да как захочет. Будет необходимость - будет из ...

Тот случай, когда обычное обновление питона может сломать все и остановить работу сервиса на неопределённое время.

Dan 😼A
1. Да как захочет. Будет необходимость - будет из ...

2. Нет. Венв не копирует туда бинарь. 3. Скачать код приложения - да. Только после этого надо ещё на систему установить нужныц питон и создать венв, куда установить зависимости

Dan-😼A Автор вопроса

Не себе. Речь про администрирование твоего сервера, когда тебе надоест это делать самому

Dan-😼A Автор вопроса
Tishka17
Не себе. Речь про администрирование твоего сервера...

Я же вроде нигде не говорил, что я запускаю какие-то сервисы на питоне, собранном в хомяке юзера :)

Хмм

Dan-😼A Автор вопроса
Tishka17
Хмм

предполагаю, что вопрос где-то в этом: https://stackoverflow.com/questions/65336876/python3-5-sees-but-python3-9-does-not-see-sqlite3

что тебе мейк сказал ты конечно не читал и скулайт-дев пакета тоже не ставил мозг не нужен

Dan-😼A Автор вопроса
Zart
что тебе мейк сказал ты конечно не читал и скулайт...

грубо. Но принимается. Я действительно не очень внимательно читал вывод мейка. Думал что он свалится с ошибкой, если не найдет нужное при явном указании ключа.

Dan 😼A
грубо. Но принимается. Я действительно не очень вн...

нет, после мейка идет рапорт о том что собралось, а что нет очевидно скулайт не собрался

Dan-😼A Автор вопроса
Zart
нет, после мейка идет рапорт о том что собралось, ...

ну вот в этом и вопрос. Я ни в коем случае никого не учу как нужно, но я ожидал, что при указании ключа --enable-loadable-sqlite-extensions он будет включен в обязательные при сборке. Поэтому строки: The necessary bits to build these optional modules were not found: _dbm _gdbm _sqlite3 _tkinter nis Были успешно мною проигнорированы. PS. Это я удалил sqlite-devel что бы затестить

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта