pip 10 no module named pip.req

前端 未结 1 1365
伪装坚强ぢ
伪装坚强ぢ 2021-01-02 17:43
  1. Installation of pip using get-pip.py is breaking. it says

    Requirement already up-to-date: pip in /tmp/tmpvF6RoH/pip.zip (10.0.0)

1条回答
  •  被撕碎了的回忆
    2021-01-02 18:23

    Installation

    For installation using get-pip.py use the --force-reinstall flag:

    $ python get-pip.py --force-reinstall
    

    Obviously this is till they fix the problem https://github.com/pypa/pip/issues/5220


    Recommended Alternative to pip's internal commands

    Avoid putting any dependency links in your requirements.txt file. Instead use the method mentioned below. You can directly put the dependency links in you setup.py file. Some famous packages also maintain the requirements inside the setup.py file in the form of a list and don't have any requirements.txt file

    with open('requirements.txt') as f:
        install_requires = f.read().strip().split('\n')
    
    setup(
        name='app_name',
        .
        .
        install_requires=install_requires,
        dependency_links=[
            'https://github.com/frappe/python-pdfkit.git#egg=pdfkit'
        ],
        cmdclass = \
        {
            'clean': CleanCommand
        }
    )
    

    Imports from pip (BAD PRACTICE - DO NOT USE as it may break anytime! )

    It is highly recommended that you avoid this because, as mentioned in the pip user guide, these methods are not thread safe. Also since they're pip's private methods, they may change it anytime without any prior notice, thereby breaking your package installation!

    If you have any imports from pip, such as:

    from pip.req import parse_requirements
    

    it'll break. Since these have been now moved to pip._internal as such:

    from pip._internal.req import parse_requirements
    

    However effectively you'll have to use something like this for backward compatibility:

    try: # for pip >= 10
        from pip._internal.req import parse_requirements
    except ImportError: # for pip <= 9.0.3
        from pip.req import parse_requirements
    

    Important

    Now that said it's not a good practice to use the internal pip functions, due to multiple reasons as mentioned here: https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program

    0 讨论(0)
提交回复
热议问题