Skip to content

Lacking parity between requirements.txt and install_requires syntax #6097

Closed
@vitaly-krugl

Description

@vitaly-krugl

Environment

  • pip version: 18.1
  • Python version: Python 2.7.15
  • OS: OS X 10.13.6 (High Sierra)
  • setuptools version: 40.6.3

Description
Per PEP-508, I can now add 'selogging_python@https://host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz' to the install_requires arg of setuptools.setup() and selogging_python dependency gets installed when the app containing that install_requires is installed. However, if I add selogging_python@https://host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz
to my requirements.txt, then pip install -r requirements.txt fails with:

Processing ./selogging_python@https:/host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/Users/vkruglik/git/vitaly_s_place/https-orchestration/selogging_python@https:/host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz'

Expected behavior
I expected the same syntax to work in requirements.txt as in install_requires. Doesn't it make sense to support the same syntax in both?

How to Reproduce

  1. add selogging_python@https://host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz
    to my requirements.txt
    run pip install -r requirements.txt
    Output
Processing ./selogging_python@https:/host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/Users/vkruglik/git/vitaly_s_place/https-orchestration/selogging_python@https:/host.company.com/content/groups/public/com/akamai/se/selogging-python/1.0.4/selogging-python-1.0.4.tgz'

Additional Info: If I add "#sha1=98286070ea0d7b1c6e9a0899717d8330c6d538a9" to the end of the URL in requirements.txt, then pip install -r requirements.txt works okay. However, since install_requires works without this "#sha1=98286070ea0d7b1c6e9a0899717d8330c6d538a9", I would expect pip install -r ... to work without it as well. It appears that pip install -r ... gets confused without the "#sha1=98286070ea0d7b1c6e9a0899717d8330c6d538a9" suffix into thinking that the URL is a file path inside the current working directory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    PEP implementationInvolves some PEPauto-lockedOutdated issues that have been locked by automation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions