a.c*_*vit 0 python build setuptools package pypi
这是我第一次必须在我实际工作的仓库中使用旧 git 存储库的内容。我决定尝试创建一个 Python 包,将其作为库导入到新版本中(我使用的是 gitlab)。
\n我已经搜索了相关信息来做到这一点,但很难找到一致的解决方案。
\n我首先尝试通过执行以下命令在本地构建包:
\npython setup.py bdist_wheel
进而:
\npython3 -m build
该包应该构建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\n自述文件\nrequirements.txt\nutils\nconfig\nmodels\nmain.py
\n
setup.py 文件:
\nimport 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大胆猜测您的..MANIFEST.in
中没有requirements.txt include
,如下所示:
include *.md LICENSE requirements.txt CHANGELOG
Run Code Online (Sandbox Code Playgroud)