setuptools setup.py 可以定义多个包吗?我如何单独引用它们?
Can setuptools setup.py define multiple packages and how do I reference them individually?
我维护一个Python REST micro framework. It's installable via setuptools and is available on PyPi。该框架提供的某些功能仅与开发相关,在生产环境中不应该真正可用。
如果我按如下方式配置 setuptools 并将其安装在 virualenv 中,一切似乎都有效。
setup(name='prestans',
version = __version__,
install_requires = ['WebOb>=1.5',],
...
)
setup(name='prestans-devel',
version = __version__,
install_requires = ['prestans', 'Click>=5.1', 'Jinja2>=2.2.8'],
...
)
我的问题区:
- 这是合法/正确的做法吗?或者有更好的方法来处理这个问题吗?
- 当我使用
python setup.py sdist upload
发布版本时,这会起作用吗? (在不填满我的 pypi 列表的情况下测试这个非常困难,当然除非我错过了一个干燥的 运行 选项)
感谢您的宝贵时间。
我不确定这样做是否正确。事实上,恕我直言,这看起来不是一种干净的方式。最好的办法是在 setup.py
中使用 install_requires 进行包安装,并在 requirements.txt
文件中列出重新创建开发环境所需的所有包。
您可以查看此 link 以明确区分:
https://python-packaging-user-guide.readthedocs.io/discussions/install-requires-vs-requirements
我维护一个Python REST micro framework. It's installable via setuptools and is available on PyPi。该框架提供的某些功能仅与开发相关,在生产环境中不应该真正可用。
如果我按如下方式配置 setuptools 并将其安装在 virualenv 中,一切似乎都有效。
setup(name='prestans',
version = __version__,
install_requires = ['WebOb>=1.5',],
...
)
setup(name='prestans-devel',
version = __version__,
install_requires = ['prestans', 'Click>=5.1', 'Jinja2>=2.2.8'],
...
)
我的问题区:
- 这是合法/正确的做法吗?或者有更好的方法来处理这个问题吗?
- 当我使用
python setup.py sdist upload
发布版本时,这会起作用吗? (在不填满我的 pypi 列表的情况下测试这个非常困难,当然除非我错过了一个干燥的 运行 选项)
感谢您的宝贵时间。
我不确定这样做是否正确。事实上,恕我直言,这看起来不是一种干净的方式。最好的办法是在 setup.py
中使用 install_requires 进行包安装,并在 requirements.txt
文件中列出重新创建开发环境所需的所有包。
您可以查看此 link 以明确区分:
https://python-packaging-user-guide.readthedocs.io/discussions/install-requires-vs-requirements