将tox与共享代码一起使用会导致双重依赖项安装,从而最终降级了依赖项

问题描述

我在一个存储库中有多个模块。现在,我想分别测试每个模块的包装,尽管它们之间可能存在依赖关系。幸运的是,我在文档中使用{distshare}/}找到了依赖项选项。

tox.ini:

[testenv]
deps =
    pytest
    {distshare}/pandas-ml-common-*.zip

一旦我运行tox,它将安装本地zip,这与人们期望的一样。但是,由于依赖项也在setup.py中列出,因此该模块被pypi的较早版本替换。是的,您猜对了,这使测试失败。使用distshare安装依赖项后,如何避免从pypi安装?

标准输出:

(.venv) $ tox
GLOB sdist-make: /pandas-ml-utils/setup.py
py37 recreate: .tox/pandas_ml_common/py37
py37 installdeps: pytest,.tox/distshare/pandas-ml-common-0.2.0.zip
py37 inst: .tox/pandas_ml_common/.tmp/package/1/pandas-ml-utils-0.2.0.zip
py37 installed: cachetools==4.1.1,...,pandas-ml-common==0.1.15,...   <--- here it is again

编辑: 来自setup.py:

   packages=find_packages(),install_requires=["pandas-ml-common",*open("requirements.txt").read().splitlines()],extras_require={
      "dev": open("dev-requirements.txt").read().splitlines(),},include_package_data=True,

requirements.txt中只有外部依赖项,例如numpy(所有没有版本atm的东西)。

解决方法

我可能会尝试以下方法:

var url = window.rootUrl + 'DUP/GetAllStreets';
        $.getJSON(url,function (streets) {
            console.log("streets",streets)
            $("#streetNameID").append('<option></option>');
            $.each(streets,function (index,value) {
                $("#streetNameID").append('<option value="' + value.Ime_1251 + '">' + value.Ime_1251 + '</option>');
            });
        });

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...