Pip install fontconfig получает SyntaxError: отсутствуют круглые скобки при вызове exec

Я пытаюсь установить fontconfig, но выдает следующую ошибку. Есть ли другой способ установки этого пакета?

Collecting fontconfig
  Downloading fontconfig-0.1.zip (121 kB)
     ---------------------------------------- 122.0/122.0 kB 70.8 kB/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
  ╰─> [22 lines of output]
      Traceback (most recent call last):
        File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "...\AppData\Local\Temp\pip-build-env-gh6zzwr6\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "...\AppData\Local\Temp\pip-build-env-gh6zzwr6\overlay\Lib\site-packages\setuptools\build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "...\AppData\Local\Temp\pip-build-env-gh6zzwr6\overlay\Lib\site-packages\setuptools\build_meta.py", line 487, in run_setup
          super().run_setup(setup_script=setup_script)
        File "...\AppData\Local\Temp\pip-build-env-gh6zzwr6\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 9
          exec line in glb
          ^^^^^^^^^^^^^^^^
      SyntaxError: Missing parentheses in call to 'exec'. Did you mean exec(...)?
      [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.

Кажется, эта версия пакета была написана для Python 2.x. Попробуйте найти версию для 3.x

Michael Butscher 13.04.2024 18:15

Связанный дубликат посвящен тому, как вы решите конкретную проблему в коде, чтобы он был совместим с Python 3. Конечно, он почти наверняка полон других проблем, но мы можем решить только конкретные вопросы.

Charles Duffy 13.04.2024 22:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
118
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Fontconfig некоторое время не обновлялся. Вы можете использовать fontconfig-py или использовать TypeLib на основе GObjectIntrospection.

import gi

gi.require_version('fontconfig', '2.0')

from gi.repository import fontconfig

# you can use fontconfig module now.

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

Обратите внимание, что Fontconfig-py в настоящее время поддерживает Linux и MacOs (pypi.org/project/fontconfig-py).

Gonzalo Odiard 13.04.2024 19:15

Спасибо. какие-нибудь предложения по окнам?

mostafa a 13.04.2024 21:48

У меня нет компьютера с Windows. Но попробуйте msys2. Он имеет python3 и собственный пакет fontconfig.

Ghorban M. Tavakoly 13.04.2024 22:02

Спасибо. Кажется, что решить эту проблему непросто и может потребоваться модификация самого пакета или поиск другого пути для моей программы. поэтому я отметил ваш ответ как принятый.

mostafa a 14.04.2024 03:54

Другие вопросы по теме