忽略 pkg_resources.ContextualVersionConflict

Ram*_*ati 5 python pip virtualenv python-3.x

我已经构建了一个安装 kwikapi==0.4.5 和 requests==2.22.0 的 python 模块。但是 kwikapi 有 requests==2.18.4。

现在,当我安装并运行我的包时,出现错误pkg_resources.ContextualVersionConflict: (requests 2.22.0 (/tmp/test_vir3.7/lib/python3.7/site-packages), Requirement.parse('requests==2.18.4'), {'kwikapi'})。

现在,如果我安装 requests==2.18.4(pip install requests==2.18.4) 并运行,那么错误是pkg_resources.DistributionNotFound: The 'requests==2.22.0' distribution was not found and is required by my-pack.

我可以使用 2.18.4 而不是 2.22.0 请求来解决这个问题。但是如果我在请求和 kwikapi 中都有不同版本的相同模块,这个问题就会再次出现。

有没有办法忽略/解决这个错误?

设置/重现

Module structure

.
??? my_pack
?   ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)

setup.py

.
??? my_pack
?   ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)

__init__.py

from setuptools import setup, find_packages

version = "0.0.1"
setup(
    name="my_pack",
    packages=find_packages("."),
    package_dir={"my_pack": "my_pack"},
    include_package_data=True,
    install_requires=[
        "kwikapi==0.4.5",
        "requests==2.22.0"
    ],
    entry_points={"console_scripts": ["my_pack = my_pack:main"]},
)
Run Code Online (Sandbox Code Playgroud)

Create python virtual environment and activate

def main():
    print("Hey! I ran")
Run Code Online (Sandbox Code Playgroud)

install

# Go to setup.py file location and do
$ pip install .
Run Code Online (Sandbox Code Playgroud)

Run

$ python3.7 -m venv vir
$ source vir/bin/activate
Run Code Online (Sandbox Code Playgroud)