如何解决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
(由于非法字符而无法导入),而不是我想要的包,{{1} }.我究竟做错了什么?已阅读 setuptools Quickstart 和各种相关问题,但仍然感到困惑。
解决方法
所以这个问题只是由于我的误解,但我想我会在答案中澄清它,因为这里有一个区别,从 Setuptools
文档中(对我来说)不太清楚。
setup.py
/setup.cfg
中定义的发行版名称是整个包的名称,它将保存在您环境的site-packages
目录中,由pip freeze
。它不可导入。有效名称在 PEP 508 中定义。例如,它们可能包含破折号,在导入包中虽然不违法,但 PEP 8 不鼓励这样做。(它 can't be imported in the standard way,因为 Python 将破折号解释为减号.)
setup.py
/setup.cfg
中定义的导入包(或模块)是您可以在 Python 中导入的内容。因此,就我而言,internals-models
正在安装,但我使用 models
包的方式是通过 import models
(我想要的行为)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。