From: Sergey Matveev
Date: 2024-05-05 09:29:10Z
*** Egor Petrov [2024-05-05 11:34]:
>А пробовали мета-поисковики по типу Searx/Searxng?
Как всегда, Python софт почти нереально установить стало. Вот
склонировал я их репозиторий (https://github.com/searx/searx).
Сделал руками venv с Python 3.10, вижу по их utils/searx.sh, что
нужно обновить pip/setuptools/wheels, установить pyyaml, выполнить
pip install ., чтобы все зависимости доустановить:
------------------------ >8 ------------------------
% pip install .
Looking in indexes: http://localhost:8081/simple/
Processing /tmp/searx
Preparing metadata (setup.py) ... done
Collecting Brotli==1.0.9 (from searx==1.1.0)
[...]
Collecting pyyaml==6.0 (from searx==1.1.0)
Downloading http://localhost:8081/simple/pyyaml/PyYAML-6.0.tar.gz (124 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.0/125.0 kB 279.6 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [48 lines of output]
running egg_info
writing lib/PyYAML.egg-info/PKG-INFO
writing dependency_links to lib/PyYAML.egg-info/dependency_links.txt
writing top-level names to lib/PyYAML.egg-info/top_level.txt
Traceback (most recent call last):
File "/tmp/searx/venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/tmp/searx/venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/tmp/searx/venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 288, in <module>
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 104, in setup
return distutils.core.setup(**attrs)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 184, in setup
return run_commands(dist)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 967, in run_command
super().run_command(command)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 321, in run
self.find_sources()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
mm.run()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 550, in run
self.add_defaults()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 588, in add_defaults
sdist.add_defaults(self)
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/command/sdist.py", line 102, in add_defaults
super().add_defaults()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 250, in add_defaults
self._add_defaults_ext()
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 335, in _add_defaults_ext
self.filelist.extend(build_ext.get_source_files())
File "<string>", line 204, in get_source_files
File "/tmp/pip-build-env-zssvapc1/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
raise AttributeError(attr)
AttributeError: cython_sources
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
------------------------ >8 ------------------------
И ошибку cython_sources я впервые вижу. Обычно многое падает на
какой-нибудь зависимости требующей Rust для сборки. Да, наверное можно
как-то обойти эту проблему, но это запросто потребует не один час работы,
нужно очень очень сильно хотеть установить подобную программу (ну точнее
зависимости для неё). Преобладающее большинство людей не имеют проблем с
Python, просто потому что он автоматически из коробки скачивает бинарные
собранные пакеты (*.whl всякие) для их системы. Попытка же собрать это
честно из исходников -- тот ещё квест.
From: Sergey Matveev
Date: 2024-05-05 16:27:33Z
*** Egor Petrov [2024-05-05 15:58]:
>Понятно. Могу тогда предложить для пробы попробовать воспользоваться
>публичным экземпляром
Если уж пользоваться Searx, то поднимать самому. А то это ничем не будет
отличаться от использования любого произвольного сервиса третьего лица.
Я ничего против Searx* пока не имею -- просто поднять его локально это
не пара кликов мышкой (образно говоря), на данный момент. Попробовал
поискать на search.disroot.org -- выдача более чем удовлетворительная,
подтверждаю.
>ЗЫ: ещё нынче вспомнил про https://kagi.com/, который точно работает без
>JS, трекеров и поддерживает идеи small web, но зато платный.
Ну уж платить за поисковик я точно не собираюсь :-). Уж что что, но это
не настолько важный и критичный сервис. К тому же навязанный, уничтожив
службы каталогов.
Но спасибо за рекомендации! Судя по всему, рано или поздно, когда Brave,
как и все остальные компании, слетит с катушек и станет неюзабельным, то
вариантом останутся только searx-like решения.