«python3 -m build» [Errno 2] Нет такого файла или каталога: «Example/interfaces/example.proto»Python

Программы на Python
Ответить
Anonymous
 «python3 -m build» [Errno 2] Нет такого файла или каталога: «Example/interfaces/example.proto»

Сообщение Anonymous »

Версия Python — 3.9.21. ОС — Rocky Linux 9.
У нашей группы мало опыта работы с Python. Нам предоставили сторонний код Python без документации. Я начал изучать базовые понятия: модули, пакеты, библиотеки, проекты, .whl, .venv, .toml и т. д. В соответствии с README во внешней папке зависимостей я использовал команду python3 -m build для создания файла .whl, поэтому попробовал использовать его в их примере проекта. Но я получаю эту ошибку:

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

(.venv) [root@dd-rocky9-us0cnd23904yl-adbf20 src]# python3 -m build
error: [Errno 2] No such file or directory: 'Example/interfaces/example.proto'
ERROR Backend subprocess exited when trying to invoke build_wheel
Вот содержимое папки src:

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

(.venv) [root@dd-rocky9-us0cnd23904yl-adbf20 src]# ls -aR
.:
.  ..  Example  pyproject.toml

./Example:
.  ..  __init__.py  __main__.py  example_pb2.py  interfaces

./Example/interfaces:
.  ..  example.proto
AI Assist от SO дал мне совет, поэтому я добавил файл MANIFEST.in в папку src:

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

recursive-include Example/interfaces *.proto
Я также попробовал эту строку с помощью ...src/Example/...
AI Assist также предложил отредактировать файл pyproject.toml. Исходный текст:

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

[build-system]
requires = [
'setuptools >= 41.9.0',
'setuptools-protobuf',
'wheel'
]
build-backend = 'setuptools.build_meta'

[tool.setuptools-protobuf]
proto_path = 'src/Example/interfaces'
protobufs = [
'example.proto',
]

[project]
name = 'Example'
version = '0.1.0'
...
Я добавил:

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

[tool.setuptools.package-data]
"Example" = ["interfaces/*.proto"]

[tool.setuptools]
include-package-data = true
Всегда получаю одну и ту же ошибку (иногда с src/Example, в зависимости от того, что я пробовал).
Похоже на проблему с путем. При дальнейшем поиске на уровне выше папки ./src/ (где находится папка .venv) я добавил файл .env с содержимым

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

PYTHONPATH=/workspaces/pyproj/src/
/workspaces/pyproj:${PYTHONPATH}
Наконец, я попытался ввести в командной строке:

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

export PYTHONPATH=/workspaces/pyproj/src/


Подробнее здесь: https://stackoverflow.com/questions/798 ... faces-exam
Ответить

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

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

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

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

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