setup.py 是没有安装依赖

setup.py is not install dependencies

我正在尝试创建一个可以通过 pip install git+https://github.com/project/neat_util.git@master#egg=neat_util 安装的命令行实用程序,我正在使用 python setup.py install 在本地进行测试。

import os
import pathlib

import setuptools

with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

setuptools.setup(
    name="neat_util",
    version="1.0.0",
    author="Cogito Ergo Sum",
    author_email="cogito@ergo.sum",
    description="Util for utilization",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://gitlab.com/project/repo",
    classifiers=[
        "Programming Language :: Python :: 3"
    ],
    package_dir={"": "bin"},
    packages=setuptools.find_packages(where="bin"),
    include_package_data=True,,
    dependency_links=['git+https://github.com/company/dependency.git@master#egg=dependency'],
    python_requires=">=3.6",
    scripts=['bin/neat_util']
)

当我在本地测试它时,它安装正常,我可以从命令行调用它,但我收到 ModuleNotFoundError“没有名为依赖项的模块错误。

github url 根据此处 https://pip.pypa.io/en/stable/topics/vcs-support/ 的文档,特别是 git+https://git.example.com/MyProject.git@master#egg=MyProject

似乎是正确的

运行 pip install git+https://github.com/company/dependency.git@master#egg=dependency 实际上也有效,所以我确信 url 不是问题所在。

项目结构:

├── bin
│   ├── script1
│   ├── script2
│   ├── script3
│   ├── neat_util
│   ├── script4
│   └── script5
├── collections.csv
├── config.cfg
├── config.cfg.example
├── env.sh
├── env.sh.example
├── example.csv
├── main.py
├── README.md
├── requirements.txt
├── setup.py
└── tests

如有任何指点,我们将不胜感激。

dependency_links 被宣布为过时,最终 removedpip 19.0 中。它的替代品是具有特殊语法的 install_requires(自 pip 19.1 起支持):

install_requires=[
    'dependency @ git+https://github.com/company/dependency.git@master',
]

https://www.python.org/dev/peps/pep-0440/#direct-references

这需要 pip install,包括 pip install .,不适用于 python setup.py install