为什么 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:
您的 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
变量!
我构建了一个 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:
您的 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
变量!