почему установка pip не загружайте зависимый пакет, который нужно определить в setup.py?

#python #setuptools #install-requires

Вопрос:

мой проект python упакован с помощью setuptools,это моя настройка.opt:

 [metadata]
name = totems_pycommon
version = 1.0.0
#long_description = file: README.rst, CHANGELOG.rst, LICENSE.rst
include_package_data = True

# 依赖
install_requires=
    kafka==1.2.0
    elasticsearch7==7.14.1
    requests

[options]
python_requires = >=3.6
packages = find:
package_dir =
    =.

[options.packages.find]
where = .
#include = *
exclude = *.test

[options.package_data]
* = *.ini
 

я определяю пакет depend в install_requires,и я думал,что когда я упаковываю свой проект с помощью setuptools ,а затем устанавливаю пакет с помощью pip-установки ,пакет depend будет загружен автоматически, но этого не произошло, почему и для чего используется install_requires?

когда я устанавливаю свой проект

Ответ №1:

Вам следует переодеться kafka==1.2.0 для kafka-python==1.2.0

 install_requires=
    kafka-python==1.2.0
    elasticsearch7==7.14.1
    requests
 

Ответ №2:

обратитесь к этой теме https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#options

вы должны переместиться install_requires и include_package_data в options раздел

ваш setup.cfg должен быть:

 [metadata]
name = totems_pycommon
version = 1.0.0
#long_description = file: README.rst, CHANGELOG.rst, LICENSE.rst

[options]
python_requires = >=3.6
packages = find:
package_dir =
    =.

include_package_data = True
# 依赖
install_requires=
    kafka==1.2.0
    elasticsearch7==7.14.1
    requests

[options.packages.find]
where = .
#include = *
exclude = *.test

[options.package_data]
* = *.ini