在使用g4f大模型的时候,碰到了报错:
RetryProviderError: RetryProvider failed: Jmuz: ClientConnectorSSLError: Cannot connect to host jmuz.me:443 ssl:default [[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1010)] Blackbox: ResponseStatusError: Response 500: OpenaiChat: NoValidHarFileError: No .har file found PollinationsAI: ResponseStatusError: Response 500: 429 Too Many Requests ChatGptEs: MissingRequirementsError: Install or update "curl_cffi" package | pip install -U curl_cffi
大约就是网站太拥堵了,或者是认证那块没过。
先进入python3.12系统
bash
source py312/bin/activate
因为FreeBSD默认是cshell,所以先执行了bash,再激活python环境。
按照提示,尝试执行
pip install -U curl_cffi
因为是在FreeBSD,pip install -U curl_cffi报错:
pip install -U curl_cffi
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Collecting curl_cffi
Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/7d/c0/18e408334c480f2cacca02feec8cd01dba9e3f1637cd03fd21b033c2bfa3/curl_cffi-0.10.0.tar.gz (144 kB)
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
╰─> [43 lines of output]
Traceback (most recent call last):
File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
main()
File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/skywalk/py312/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=[])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 320, in run_setup
exec(code, locals())
File "<string>", line 16, in <module>
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 148, in setup
_setup_distribution = dist = klass(attrs)
^^^^^^^^^^^^
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 323, in __init__
_Distribution.__init__(self, dist_attrs)
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 309, in __init__
self.finalize_options()
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 786, in finalize_options
ep(self)
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 806, in _finalize_setup_keywords
ep.load()(self, ep.name, value)
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 216, in cffi_modules
add_cffi_module(dist, cffi_module)
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 49, in add_cffi_module
execfile(build_file_name, mod_vars)
File "/tmp/pip-build-env-8l9y9560/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 25, in execfile
exec(code, glob, glob)
File "scripts/build.py", line 51, in <module>
arch = detect_arch()
^^^^^^^^^^^^^
File "scripts/build.py", line 48, in detect_arch
raise Exception(f"Unsupported arch: {uname}")
Exception: Unsupported arch: uname_result(system='FreeBSD', node='fb5', release='14.1-BETA3', version='FreeBSD 14.1-BETA3 releng/14.1-n267636-2a964a7fc34e GENERIC', machine='amd64')
[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.
尝试先安装cffi,再安装curl-cffi,cffi可以安装上:
pip install cffi
curl-cffi还是没有装上:
pip install -U curl_cffi
问题在FreeBSD下没有解决。
总结下,FreeBSD下,现在安装python库,有些不容易装上,比如curl_cffi ,pydantic-core , aiohttp
但是g4f的gui服务还是需要,所以在FreeBSD里起了一台CBSD jail Ubuntu服务器起g4f的服务:
sudo cbsd jls
JNAME JID IP4_ADDR HOST_HOSTNAME PATH STATUS
ubjail2 3 192.168.1.13/24 ubjail2.my.domain /usr/jails/jails-data/ubjail2-data On
安装g4f[all]
pip install g4f[all]
安装完毕后,分别g4f gui 和g4f api 起服务,然后测试服务,发现一切正常后,将它们使用nohup启动:
nohup g4f api &
nohup g4f gui &
这样先临时解决这个问题了。
后来写了一个sh文件,这样每次升级g4f更加方便一点:
#!/bin/bash
pip install -U g4f[all]
# 停止服务
pkill -f "g4f"
# 启动服务
nohup g4f api &
nohup g4f gui &
执行这个文件,先升级g4f,然后停止g4f的服务,然后再启动g4f api和gui服务。
其中api提供模型调用,gui提供8080端口的web访问。