Setuptools 安装库而不是它的包
Setuptools installing library instead of its packages
这是我的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
中定义的distribution name为整体包名,会保存在你环境的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
(我想要的行为)。
这是我的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
中定义的distribution name为整体包名,会保存在你环境的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
(我想要的行为)。