Пытаюсь собрать пакет Python grpcio, но всегда получаю ошибку RISCV # 36112Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Пытаюсь собрать пакет Python grpcio, но всегда получаю ошибку RISCV # 36112

Сообщение Гость »

ОС: openSUSE Tumbleweed riscv64
Хост: T-HEAD Light Lichee Pi 4A, конфигурация для платы DDR 8 ГБ
Ядро: 5.10.113
Это только на riscv, мы построили на x86- 64 и Arm, и все было в порядке.
пытался собрать пакет Python grpcio, но всегда получал эту ошибку:

Код: Выделить всё

Looking in indexes: https://nexus.veil.local/repository/pypi-hosted/simple/, https://pypi.org/simple/
Processing /root/workspace/grpc-bld
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: grpcio
Building wheel for grpcio (pyproject.toml) ... error
error: subprocess-exited-with-error

× Building wheel for grpcio (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [219 lines of output]
:40: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
This package needs to generate C files with Cython but it cannot. Poisoning extension sources to disallow extension commands...You requested a Cython build via GRPC_PYTHON_BUILD_WITH_CYTHON, but do not have Cython installed.  We won't stop you from using other commands, but the extension files will fail to build.
running bdist_wheel
running build
running build_py
running build_project_metadata
copying src/python/grpcio/grpc/_grpcio_metadata.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_interceptor.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_common.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_utilities.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_server.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_auth.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_channel.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_typing.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_observability.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_plugin_wrapping.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_compression.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_runtime_protos.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/_simple_stubs.py -> pyb/lib.linux-riscv64-cpython-312/grpc
copying src/python/grpcio/grpc/beta/_metadata.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/_client_adaptations.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/implementations.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/utilities.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/interfaces.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/beta/_server_adaptations.py -> pyb/lib.linux-riscv64-cpython-312/grpc/beta
copying src/python/grpcio/grpc/aio/_interceptor.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_base_call.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_metadata.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_base_server.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_base_channel.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_server.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_channel.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_typing.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_call.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/aio/_utils.py -> pyb/lib.linux-riscv64-cpython-312/grpc/aio
copying src/python/grpcio/grpc/framework/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework
copying src/python/grpcio/grpc/_cython/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/_cython
copying src/python/grpcio/grpc/experimental/session_cache.py -> pyb/lib.linux-riscv64-cpython-312/grpc/experimental
copying src/python/grpcio/grpc/experimental/gevent.py -> pyb/lib.linux-riscv64-cpython-312/grpc/experimental
copying src/python/grpcio/grpc/experimental/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/experimental
copying src/python/grpcio/grpc/framework/common/cardinality.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/common
copying src/python/grpcio/grpc/framework/common/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/common
copying src/python/grpcio/grpc/framework/common/style.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/common
copying src/python/grpcio/grpc/framework/interfaces/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces
copying src/python/grpcio/grpc/framework/foundation/abandonment.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/logging_pool.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/callable_util.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/init.py ->  pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/future.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/stream.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/stream_util.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/interfaces/base/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/base/utilities.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/base/base.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/face/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/framework/interfaces/face/utilities.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/framework/interfaces/face/face.py -> pyb/lib.linux-riscv64-cpython-312/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/_cython/_cygrpc/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/_cython/_cygrpc
copying src/python/grpcio/grpc/experimental/aio/init.py -> pyb/lib.linux-riscv64-cpython-312/grpc/experimental/aio
copying src/python/grpcio/grpc/_cython/_credentials/roots.pem -> pyb/lib.linux-riscv64-cpython-312/grpc/_cython/_credentials
running build_ext
Found cython-generated files...
building 'grpc._cython.cygrpc' extension
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -fPIC -D_WIN32_WINNT=1536 -DGRPC_XDS_USER_AGENT_NAME_SUFFIX="Python" -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX="1.62.0" -DHAVE_CONFIG_H=1 -DGRPC_ENABLE_FORK_SUPPORT=1 -DGRPC_DO_NOT_INSTANTIATE_POSIX_POLLER=1 -D__STDC_FORMAT_MACROS "-DPyMODINIT_FUNC=extern "C" attribute((visibility ("default"))) PyObject*" -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -Isrc/python/grpcio -Iinclude -I.  -Ithird_party/abseil-cpp -Ithird_party/address_sorting/include -Ithird_party/cares/cares/include -Ithird_party/cares -Ithird_party/cares/cares -Ithird_party/cares/config_linux -Ithird_party/re2 -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/upb -Isrc/core/ext/upb-gen -Isrc/core/ext/upbdefs-gen -Ithird_party/utf8_range -Ithird_party/xxhash -Ithird_party/zlib -I/usr/include/python3.12 -c /root/workspace/grpc-bld/src/python/grpcio/poison.c -o pyb/temp.linux-riscv64-cpython-312/root/workspace/grpc-bld/src/python/grpcio/poison.o -std=c++14 -fvisibility=hidden -fno-wrapv -fno-exceptions -pthread
cc1: warning: command-line option ‘-std=c++14’ is valid for C++/ObjC++ but not for C
/root/workspace/grpc-bld/src/python/grpcio/poison.c:1:2: error: #error Extensions have been poisoned due to missing Cython-generated code.
1 | #error Extensions have been poisoned due to missing Cython-generated code.
| ^~~~~
creating None/tmp/tmphlx4__d7
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -IVendor/ -fPIC -I/usr/include/python3.12 -c /tmp/tmphlx4__d7/a.c -o None/tmp/tmphlx4__d7/a.o
Traceback (most recent call last):
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 185, in _compile
self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
File "/root/workspace/grpc-bld/src/python/grpcio/_spawn_patch.py", line 58, in _commandfile_spawn
_classic_spawn(self, command, **kwargs)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 1041, in spawn
spawn(cmd, dry_run=self.dry_run, **kwargs)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
raise DistutilsExecError(
distutils.errors.DistutilsExecError:  command '/usr/bin/gcc' failed with exit code 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/root/workspace/grpc-bld/src/python/grpcio/commands.py", line 313, in build_extensions
build_ext.build_ext.build_extensions(self)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
self._build_extensions_serial()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
self.build_extension(ext)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 250, in build_extension
_build_ext.build_extension(self, ext)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
objects = self.compiler.compile(
^^^^^^^^^^^^^^^^^^^^^^
File "/root/workspace/grpc-bld/src/python/grpcio/_parallel_compile_patch.py", line 70, in _parallel_compile
multiprocessing.pool.ThreadPool(BUILD_EXT_COMPILER_JOBS).map(
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 774, in get
raise self._value
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File "/root/workspace/grpc-bld/src/python/grpcio/_parallel_compile_patch.py", line 65, in _compile_single_file
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
raise CompileError(msg)
distutils.errors.CompileError:  command '/usr/bin/gcc' failed with exit code 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in 
main()
File "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in build_wheel
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "", line 591, in 
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
super().run_command(command)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-667_glox/normal/lib/python3.12/site-packages/wheel/bdist_wheel.py", line 368, in run
self.run_command("build")
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
super().run_command(command)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 131, in run
self.run_command(cmd_name)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
super().run_command(command)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 89, in run
_build_ext.run(self)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
self.build_extensions()
File "/root/workspace/grpc-bld/src/python/grpcio/commands.py", line 317, in build_extensions
raise CommandError(
commands.CommandError:  Failed `build_ext` step:
Traceback (most recent call last):
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 185, in _compile
self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
File "/root/workspace/grpc-bld/src/python/grpcio/_spawn_patch.py", line 58, in _commandfile_spawn
_classic_spawn(self, command, **kwargs)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 1041, in spawn
spawn(cmd, dry_run=self.dry_run, **kwargs)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
raise DistutilsExecError(
distutils.errors.DistutilsExecError: command '/usr/bin/gcc' failed with exit code 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/root/workspace/grpc-bld/src/python/grpcio/commands.py", line 313, in build_extensions
build_ext.build_ext.build_extensions(self)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
self._build_extensions_serial()
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
self.build_extension(ext)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 250, in build_extension
_build_ext.build_extension(self, ext)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
objects = self.compiler.compile(
^^^^^^^^^^^^^^^^^^^^^^
File "/root/workspace/grpc-bld/src/python/grpcio/_parallel_compile_patch.py", line 70, in _parallel_compile
multiprocessing.pool.ThreadPool(BUILD_EXT_COMPILER_JOBS).map(
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 774, in get
raise self._value
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File "/root/workspace/grpc-bld/src/python/grpcio/_parallel_compile_patch.py", line 65, in _compile_single_file
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/tmp/pip-build-env-667_glox/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
raise CompileError(msg)
distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1

[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for grpcio
Failed to build grpcio
ERROR: Could not build wheels for grpcio, which is required to install pyproject.toml-based projects ```
Я пытался установить все известные библиотеки, изменить версии gcc и т. д.

Подробнее здесь: https://stackoverflow.com/questions/781 ... iscv-36112
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»