我用一个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='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'
]
可能工作得更好,因为版本是指定的。这会是问题所在吗?
以下是指向存储库的链接:
发布于 2018-06-04 03:21:14
您的setup.py
包含以下行:
path = pkg_resources.resource_filename('pycda', 'models/tinynet.h5')
根据我在尝试安装您的软件包时得到的回溯,此调用使pkg_resources
尝试导入您的软件包,但您的软件包导入了numpy
。因为numpy
只有在pip知道它是一个依赖项时才能安装,而且如果不运行setup.py
它就不能知道它是一个依赖项,并且因为setup.py
不能在不进行上述pkg_resources
调用的情况下运行,所以我们在知道需要numpy
之前就结束了这种情况;因此,出现了一个错误。解决方案是删除上面的行,这应该很容易,因为甚至没有使用path
变量!
https://stackoverflow.com/questions/50669306
复制相似问题