我编写了一个依赖于openpyxl的python模块。我希望使用setuptools自动将openpxyl安装为依赖项。 我读到正确的方法是在setup.py脚本中包含以下内容:
setup(name='methpipe',
version=find_version("lala", "__init__.py"),
description='Utilities',
author='Jonathan T',
author_email='jt@lala.com',
url='https://git.com...',
packages=find_packages(),
install_requires=[
'openpxyl = 2.3.3',
],
scripts=["bin/submit_run_full.py"],
cmdclass=dict(install=my_install)
)
所以我用python setup.py sdist
打包了我的模块,拿了* .tar.gz文件,解压缩它,然后运行python setup.py install
,而openpyxl没有安装!!!
我在这里做错了什么?
答案 0 :(得分:2)
尝试在install_requires
和setup_requires
中提供您的依赖关系。
以下内容来自https://pythonhosted.org/setuptools/setuptools.html
的setuptool
文档
setup_requires
字符串或字符串列表,指定为了运行安装脚本而需要存在的其他分发。 setuptools将尝试获取这些(甚至可以实现 在处理剩下的部分之前,先使用EasyInstall下载它们 设置脚本或命令。如果您正在使用,则需要此参数 distutils扩展作为构建过程的一部分;例如, 处理setup()参数并将它们转换为EGG-INFO的扩展 元数据文件。
(注意:setup_requires中列出的项目不会自动生效 安装在运行安装脚本的系统上。他们是 如果它们不是本地的,只需下载到./.eggs目录 已经可用了。如果你想安装它们,以及存在 运行安装脚本时可以使用,您应该将它们添加到 install_requires和setup_requires。)
答案 1 :(得分:0)
当使用“ cmdclass”键覆盖“ install”时,我会注意到。下面的模式也使我摆脱了依赖关系。
SELECT * FROM LookUp WHERE idLookUp = 212
将依赖项添加到setup_requires中对我来说不起作用,因此最后我只是在custom install命令中进行了自己的pip安装。
Custom_Install(install):
def run(self):
# some custom commands
install.run(self)
答案 2 :(得分:0)
使用sdist进行构建会创建源代码分发,因此,我认为这不是正常的taht依赖关系。