在 setup.py 里声明对本地包的依赖,直接用 dependency_links 已经过时了。现在主流是用 setuptools 的 setup.cfg 或 pyproject.toml,但如果你坚持用 setup.py,可以这样搞:
核心方法:用 install_requires 配合 dependency_links(旧式,不推荐)
from setuptools import setup
setup(
name='your_project',
version='0.1',
install_requires=[
'some_local_package @ file:///path/to/your/package',
],
)
更靠谱的方法:直接 pip install 本地路径
直接在项目里写个 requirements.txt:
-e /path/to/your/package
然后在 setup.py 里:
from setuptools import setup
with open('requirements.txt') as f:
install_requires = f.read().strip().split('\n')
setup(
name='your_project',
version='0.1',
install_requires=install_requires,
)
现在更推荐用 pyproject.toml
在项目根目录创建 pyproject.toml:
[build-system]
requires = ["setuptools", "wheel"]
[project]
name = "your_project"
version = "0.1"
dependencies = [
"some_local_package @ file:///path/to/your/package",
]
如果本地包是你自己开发的
最好用 pip install -e /path/to/package 先装到环境里,这样 setup.py 里直接写包名就行:
setup(
name='your_project',
version='0.1',
install_requires=['your_local_package'],
)
简单说,现在别折腾 dependency_links 了,直接用路径声明或者先 pip install -e 装本地包。