Setuptools正在安装库而不是其程序包



这是我的tree(简化(:

└── internal_models
├── models
│   ├── __init__.py
│   └── api
│       ├── my_code.py
└── setup.py

我的setup.py:

from setuptools import setup
setup(name='internal-models',
version='0.0.2',
description='models package',
packages=["models"],
zip_safe=False,
install_requires=[])

当我使用pip install .python setup.py build进行安装时,Setuptools会安装internal-models(由于非法字符,无法导入(,而不是我想要的程序包models。我做错了什么?已经阅读了安装工具Quickstart和各种相关问题,但仍然感到困惑。

最小可复制示例

所以这个问题只是由于我的误解,但我想我应该在回答中澄清它,因为这里有一个区别(对我来说(与Setuptools文档不太清楚。

setup.py/setup.cfg中定义的分发名称是整个包名称,它将保存在环境的site-packages目录中,并由pip freeze输出。它不可进口。有效名称在PEP 508中定义。例如,它们可能包含破折号,这在进口包装中虽然不违法,但受到PEP 8的劝阻。(不能以标准方式导入,因为Python将破折号解释为减号。(

setup.py/setup.cfg中定义的导入包(或模块(可以在Python中导入。因此,在我的案例中,安装了internals-models,但我使用models包的方式是通过import models(我想要的行为(。

相关内容

  • 没有找到相关文章

最新更新