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

标签 python pip pypi

我使用 setup.py 构建了一个 Python 包,如下所示:

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='<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6a0713040b070f2a0f070b030644090507" rel="noreferrer noopener nofollow">[email protected]</a>',
     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'
     ]

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

这是存储库的链接:

PyCDA on GitHub
PyCDA on PyPI

最佳答案

您的setup.py包含以下行:

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

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

关于python - 为什么 pip 不安装 setup.py 中指定的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50669306/

相关文章:

python - 为什么我的包占用这么多内存

python - 将日期时间对象传递给 django 中的 url

python - 无法在 Jupyter notebook 中导入 opencv 但能够在 Anaconda 的命令行中导入

jquery - 从 django 应用程序到 jquery 插件的依赖

python - PyPi 下载计数似乎不切实际

python - 将不同版本的 Python 包的不同版本上传到奶酪店

python - Pypi:不允许存储或编辑包信息

python - 横向扩展 Scrapyd

python - 如何在Wireshark中解析protobuf数据包

python - IO错误 : [Errno 2] No such file or directory: 'README.md'