我一直在努力将我的代码分解为各种模块和软件包。
将我的一个库更改为git子模块后,我无法同时获得pip和setuptools的安装。
我已经做了一些事情来使它起作用,我最终认为我必须做错了。所以我尝试用诗歌来做。但是我在那里得到了相同的结果。
因此,如果我在诗歌配置中这样做:
packages = [
{ include = "sophoscli.py" },
{ include = "sophosApi" },
]
[tool.poetry.dependencies]
python = ">=3.8"
sophosapi = {path = "./sophosApi"}
然后
poetry build
然后尝试安装它生成的软件包:
pip._vendor.pkg_resources.RequirementParseError: Invalid URL: sophosApi
并且setuptools也无法安装。
setup.py诗歌生成的是:
# -*- coding: utf-8 -*-
from setuptools import setup
packages = \
['sophosApi', 'sophosApi.docs.source', 'sophosApi.sophosApi']
package_data = \
{'': ['*'], 'sophosApi': ['docs/*']}
modules = \
['sophoscli']
install_requires = \
['sophosapi @ sophosApi']
setup_kwargs = {
'name': 'sophoscli',
'version': '1.0.0',
'description': 'Cli for sophosApi',
'long_description': None,
'author': '',
'author_email': '',
'maintainer': None,
'maintainer_email': None,
'url': '',
'packages': packages,
'package_data': package_data,
'py_modules': modules,
'install_requires': install_requires,
'python_requires': '>=3.8',
}
setup(**setup_kwargs)
在尝试诗歌之前,我发现我可以通过以下方式使用设置工具:
install_requires = ['sophosApi']
dependency_links = [f"""{os.path.join(os.getcwd(), 'sophosApi')}#egg=sophosApi-1.0.0""",]
但是随后pip仍然不起作用。
当sophosApi是它自己的软件包时,有没有办法使它工作?