https://stackoverflow.com/questions/12518499/pip के समान -अनदेखा-निर्भरता-लिंक-इन-सेटअप-पीई

मैं नकली को एक खुले पीआर की प्रत्याशा में संशोधित कर रहा हूं जिसे मैंने सत्यापनकर्ता, और मैं अपनी नई निर्भरता का परीक्षण करने में सक्षम होना चाहता हूं।

setup(
    name='Faker',
    ...
    install_requires=[
        "python-dateutil>=2.4",
        "six>=1.10",
        "text-unidecode==1.2",
    ],
    tests_require=[
        "validators@https://github.com/kingbuzzman/validators/archive/0.13.0.tar.gz#egg=validators-0.13.0",  # TODO: this will change  # noqa
        "ukpostcodeparser>=1.1.1",
        ...
    ],
    ...
)

python setup.py test ने 0.13.0 संस्करण को स्थापित करने से इंकार कर दिया।

यदि मैं समस्या रेखा को install_requires=[..] तक ले जाऊं (जो वहां नहीं होनी चाहिए)

setup(
    name='Faker',
    ...
    install_requires=[
        "python-dateutil>=2.4",
        "six>=1.10",
        "text-unidecode==1.2",
         "validators@https://github.com/kingbuzzman/validators/archive/0.13.0.tar.gz#egg=validators-0.13.0",  # TODO: this will change  # noqa
    ],
    tests_require=[
        "ukpostcodeparser>=1.1.1",
        ...
    ],
    ...
)
  • pip install -e . का उपयोग करके सब कुछ बढ़िया काम करता है -- सही संस्करण स्थापित हो जाता है।
  • python setup.py develop इसी मुद्दे का उपयोग कर रहे हैं।

मेरा अनुमान है कि setuptools/distutils कुछ अजीब कर रहा है - pip इस मुद्दे को हल करता प्रतीत होता है। मेरा प्रश्न: मैं इसे कैसे ठीक करूं?

समस्याग्रस्त कोड और संदर्भ यहां देखे जा सकते हैं:

इस मुद्दे को हाथ में देखने का सबसे आसान तरीका:

docker run -it --rm python:3.7 bash -c "git clone https://github.com/kingbuzzman/faker.git; cd faker; pip install -e .; python setup.py test"

अद्यतन करें: चूंकि इसे ठीक कर दिया गया है, इसलिए इस मुद्दे को अब दोहराया नहीं जाएगा -- सभी परीक्षण पास हो जाएंगे

6
Javier Buzzi 8 मई 2019, 20:28

1 उत्तर

सबसे बढ़िया उत्तर

दुर्भाग्य से, न तो setup_requires और न ही tests_require अभी तक पीईपी 508 से यूआरएल-आधारित लुकअप या पर्यावरण मार्कर का समर्थन करते हैं। उदाहरण के लिए, आपको dependency_links का उपयोग करना होगा

setup(
    ...
    tests_require=["validators>=0.13.0"],
    dependency_links=['git+https://github.com/kingbuzzman/validators@master#egg=validators-0.13.0'],
)
1
hoefling 8 मई 2019, 21:20