no module named urllib.parse (How should I install it?)

后端 未结 11 577
青春惊慌失措
青春惊慌失措 2020-12-03 02:49

I\'m trying to run a REST API on CentOS 7, I read urllib.parse is in Python 3 but I\'m using Python 2.7.5 so I don\'t know how to install this module.

I installed al

相关标签:
11条回答
  • 2020-12-03 02:58

    The urlparse in Python 2.7.11 was renamed to urllib.parse in Python 3. So, if you have a code such from urlparse import urlparse, I suggest you change it to from urllib.parse import urlparse Since you are using python 2.7.5, using the below will solve your poblem

    from urlparse import urlparse
    

    Instead of from urllib.parse import urlparse

    0 讨论(0)
  • 2020-12-03 03:00

    python3 supports urllib.parse and python2 supports urlparse

    If you want both compatible then the following code can help.

    import sys
    
    if ((3, 0) <= sys.version_info <= (3, 9)):
        from urllib.parse import urlparse
    elif ((2, 0) <= sys.version_info <= (2, 9)):
        from urlparse import urlparse
    

    Update: Change if condition to support higher versions if (3, 0) <= sys.version_info:.

    0 讨论(0)
  • 2020-12-03 03:00

    The problem was because I had a lower version of Django (1.4.10), so Django Rest Framework need at least Django 1.4.11 or bigger. Thanks for their answers guys!

    Here the link for the requirements of Django Rest: http://www.django-rest-framework.org/

    0 讨论(0)
  • 2020-12-03 03:06

    With the information you have provided, your best bet will be to use Python 3.x.

    Your error suggests that the code may have been written for Python 3 given that it is trying to import urllib.parse. If you've written the software and have control over its source code, you should change the import to:

    from urlparse import urlparse
    

    urllib was split into urllib.parse, urllib.request, and urllib.error in Python 3.

    I suggest that you take a quick look at software collections in CentOS if you are not able to change the imports for some reason. You can bring in Python 3.3 like this:

    1. yum install centos­-release­-SCL
    2. yum install python33
    3. scl enable python33

    Check this page out for more info on SCLs

    0 讨论(0)
  • 2020-12-03 03:06

    For python 3 pip install urllib

    find the utils.py in %PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py

    change the import urlparse to

    from urllib import parse as urlparse
    
    0 讨论(0)
  • 2020-12-03 03:08

    Install six, the Python 2 and 3 Compatibility Library:

    $ sudo -H pip install six
    

    Use it:

    from six.moves.urllib.parse import urlparse
    

    (edit: I deleted the other answer)

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