为什么 pip 不安装 setup.py 中指定的依赖项?

Why doesn't pip install dependencies specified in setup.py?

我构建了一个 Python 包,其中 setup.py 看起来像:

from setuptools import setup, find_packages

setup(
     name='my_package',
     version='0.1',
     url='https://github.com/me/my_package',
     download_url='https://github.com/dwnlod.tar.gz',
     author='me',
     author_email='myname@email.com',
     license='MIT',
     packages=['my_package'],
     install_requires=[
         'numpy',
         'other_package'
     ]
)

当我使用

在本地安装软件包时
pip install .

Pip 安装 install_requires 中的所有依赖项。但是,当我通过 PyPI 注册包时,并使用

pip install my_package

Pip 没有安装依赖项。 (我是在一个全新的环境中这样做的,所以这些包还没有安装;安装失败。)这是怎么回事?通读文档,它看起来像

     install_requires=[
         'numpy==1.14.1',
         'other_package==ve.rs.ion'
     ]

可能会更好,因为指定了版本。这可能是问题所在吗?

这是回购的 link:

PyCDA on GitHub
PyCDA on PyPI

您的 setup.py 包含以下行:

path = pkg_resources.resource_filename('pycda', 'models/tinynet.h5')

根据我在尝试安装您的包时得到的回溯,此调用使 pkg_resources 尝试导入您的包,但您的包导入 numpy。因为除非 pip 知道它是一个依赖项,否则无法安装 numpy,并且因为如果没有 运行ning setup.py,它就无法知道它是一个依赖项,并且因为 setup.py 不能' t 运行 如果不首先进行上述 pkg_resources 调用,我们最终会遇到 numpy 是必需的情况,然后我们才能知道它是必需的;因此,一个错误。解决方案是删除上面的行,这应该很容易,因为甚至没有使用 path 变量!