构建python包找不到requirements.txt

a.c*_*vit 0 python build setuptools package pypi

这是我第一次必须在我实际工作的仓库中使用旧 git 存储库的内容。我决定尝试创建一个 Python 包,将其作为库导入到新版本中(我使用的是 gitlab)。

\n

我已经搜索了相关信息来做到这一点,但很难找到一致的解决方案。

\n

我首先尝试通过执行以下命令在本地构建包:

\n

python setup.py bdist_wheel

\n

进而:

\n

python3 -m build

\n

该包应该构建wheel的依赖关系,但在尝试查找requirements.txt文件时它崩溃了。

\n

我之前看到该命令写入 Egg-info 文件,创建包,并将文件从本地复制到包:

\n
(venv) acivit@odin:~/projects/mechanized-number-recognition$ python3 -m build \n* Creating venv isolated environment...\n* Installing packages in isolated environment... (setuptools >= 40.8.0, wheel)\n* Getting build dependencies for sdist...\nrunning egg_info\nwriting acivit.mechanized_number_recognition.egg-info/PKG-INFO\nwriting dependency_links to acivit.mechanized_number_recognition.egg-info/dependency_links.txt\nwriting requirements to acivit.mechanized_number_recognition.egg-info/requires.txt\nwriting top-level names to acivit.mechanized_number_recognition.egg-info/top_level.txt\nreading manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\nadding license file 'LICENSE.md'\nwriting manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\n* Building sdist...\nrunning sdist\nrunning egg_info\nwriting acivit.mechanized_number_recognition.egg-info/PKG-INFO\nwriting dependency_links to acivit.mechanized_number_recognition.egg-info/dependency_links.txt\nwriting requirements to acivit.mechanized_number_recognition.egg-info/requires.txt\nwriting top-level names to acivit.mechanized_number_recognition.egg-info/top_level.txt\nreading manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\nadding license file 'LICENSE.md'\nwriting manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\nrunning check\ncreating acivit.mechanized_number_recognition-0.0.3\ncreating acivit.mechanized_number_recognition-0.0.3/config\ncreating acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncreating acivit.mechanized_number_recognition-0.0.3/models\ncreating acivit.mechanized_number_recognition-0.0.3/utils\ncreating acivit.mechanized_number_recognition-0.0.3/utils/wandb_logging\ncopying files to acivit.mechanized_number_recognition-0.0.3...\ncopying LICENSE.md -> acivit.mechanized_number_recognition-0.0.3\ncopying README.md -> acivit.mechanized_number_recognition-0.0.3\ncopying setup.py -> acivit.mechanized_number_recognition-0.0.3\ncopying config/__init__.py -> acivit.mechanized_number_recognition-0.0.3\ncopying config/modules_config.py -> acivit.mechanized_number_recognition-0.0.3/config\ncopying acivit.mechanized_number_recognition.egg-info/PKG-INFO -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying acivit.mechanized_number_recognition.egg-info/SOURCES.txt -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying acivit.mechanized_number_recognition.egg-info/dependency_links.txt -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying acivit.mechanized_number_recognition.egg-info/not-zip-safe -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying acivit.mechanized_number_recognition.egg-info/requires.txt -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying acivit.mechanized_number_recognition.egg-info/top_level.txt -> acivit.mechanized_number_recognition-0.0.3/acivit.mechanized_number_recognition.egg-info\ncopying models/__init__.py -> acivit.mechanized_number_recognition-0.0.3/models\ncopying models/common.py -> acivit.mechanized_number_recognition-0.0.3/models\ncopying models/experimental.py -> acivit.mechanized_number_recognition-0.0.3/models\ncopying models/yolo.py -> acivit.mechanized_number_recognition-0.0.3/models\ncopying utils/__init__.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/activations.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/add_nms.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/autoanchor.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/camera.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/datasets.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/general.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/google_utils.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/loss.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/metrics.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/plots.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/py_save.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/torch_utils.py -> acivit.mechanized_number_recognition-0.0.3/utils\ncopying utils/wandb_logging/__init__.py -> acivit.mechanized_number_recognition-0.0.3/utils/wandb_logging\ncopying utils/wandb_logging/log_dataset.py -> acivit.mechanized_number_recognition-0.0.3/utils/wandb_logging\ncopying utils/wandb_logging/wandb_utils.py -> acivit.mechanized_number_recognition-0.0.3/utils/wandb_logging\nWriting acivit.mechanized_number_recognition-0.0.3/setup.cfg\nCreating tar archive\nremoving 'acivit.mechanized_number_recognition-0.0.3' (and everything under it)\n\n* Building wheel from sdist\n* Creating venv isolated environment...\n* Installing packages in isolated environment... (setuptools >= 40.8.0, wheel)\n* Getting build dependencies for wheel...\nTraceback (most recent call last):\n  File "/home/acivit/projects/mechanized-number-recognition/venv/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>\n    main()\n  File "/home/acivit/projects/mechanized-number-recognition/venv/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main\n    json_out['return_val'] = hook(**hook_input['kwargs'])\n  File "/home/acivit/projects/mechanized-number-recognition/venv/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel\n    return hook(config_settings)\n  File "/tmp/build-env-6rchc20e/lib/python3.8/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel\n    return self._get_build_requires(config_settings, requirements=['wheel'])\n  File "/tmp/build-env-6rchc20e/lib/python3.8/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires\n    self.run_setup()\n  File "/tmp/build-env-6rchc20e/lib/python3.8/site-packages/setuptools/build_meta.py", line 484, in run_setup\n    super(_BuildMetaLegacyBackend,\n  File "/tmp/build-env-6rchc20e/lib/python3.8/site-packages/setuptools/build_meta.py", line 335, in run_setup\n    exec(code, locals())\n  File "<string>", line 6, in <module>\nFileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'\n\nERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel\n\n
Run Code Online (Sandbox Code Playgroud)\n

项目结构是:

\n

机械化号码包

\n
\n

自述文件\nrequirements.txt\nutils\nconfig\nmodels\nmain.py

\n
\n

setup.py 文件:

\n
import setuptools\n\nwith open("README.md", "r") as fh:\n    long_description = fh.read()\n\nwith open("requirements.txt", "r") as fh:\n    install_requires = fh.read()\n\nsetuptools.setup(\n    name="acivit.mechanized_number_recognition",\n    version="0.0.3",\n    author="Acivit",\n    description="`System to detect the Mechanized Number",\n    long_description=long_description,\n    long_description_content_type="text/markdown",\n    url="https://gitlab.com/acivit/project/ai_systems/mechanized-number-recognition",\n    # \xc2\xa0Disable zip_safe to allow compatibility with mypy.\n    # See: https://mypy.readthedocs.io/en/stable/installed_packages.html#making-pep-561-compatible-packages\n    zip_safe=False,\n    package_data={"mechanized_number_recognition": ["py.typed"]},\n    packages=setuptools.find_packages(),\n    classifiers=[\n        "Programming Language :: Python :: 3",\n        "Operating System :: OS Independent",\n    ],\n    python_requires=">=3.6",\n    install_requires=install_requires,\n)\n\n\n
Run Code Online (Sandbox Code Playgroud)\n

知道为什么会发生这种情况吗?或者还有其他方法来构建包?

\n

谢谢

\n

ras*_*ani 5

大胆猜测您的..MANIFEST.in中没有requirements.txt include,如下所示:

include *.md LICENSE requirements.txt CHANGELOG
Run Code Online (Sandbox Code Playgroud)