2015-03-31 113 views
20

我想在CentOS 7上運行REST API,我讀urllib.parse是在Python 3中,但我使用的是Python 2.7.5,所以我不知道如何安裝這個模塊。沒有模塊名爲urllib.parse(我應該如何安裝它?)

我安裝了所有的需求但仍然無法運行項目。

當我正在尋找一個網址我得到這個(我使用的是可瀏覽界面):

輸出:

ImportError at /stamp/ 
No module named urllib.parse 

回答

12

你想使用裏urlparse python2:

from urlparse import urlparse 
13

根據您提供的信息,您最好的選擇是使用Python 3.x.

您的錯誤表明該代碼可能是爲Python 3編寫的,因爲它試圖導入urllib.parse。如果你寫的軟件,並有超過它的源代碼控制,你應該改變進口到:

from urlparse import urlparse 

urllib分成urllib.parseurllib.requesturllib.error在Python 3

我建議您如果因爲某些原因無法更改進口產品,請快速瀏覽CentOS 中的軟件集合。 您可以在Python 3.3帶來這樣的:

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

檢查this頁出去上的SCL

0

問題是因爲我有更多的信息Django(1.4.10)的較低版本,因此Django Rest Framework至少需要Django 1.4.1 1或更大。感謝他們的回答傢伙!

下面的鏈接,Django的休息的要求:http://www.django-rest-framework.org/

-4
pip install -U websocket 

我只是用這個來解決我的問題

+0

我已經看到了答案的某個地方,即使這確實解決了問題,因爲具有urlparse作爲依賴關係,但不是解決此問題的正確方法。 – erm3nda 2017-05-27 09:11:34

32

如果你需要編寫的代碼是Python2和Python3兼容,你可以使用下面的進口

try: 
    from urllib.parse import urlparse 
except ImportError: 
    from urlparse import urlparse 
+0

解答關於py2和py3的問題要好得多:-) – erm3nda 2017-05-27 09:12:30

0

對於Python 3,使用以下命令:

import urllib.parse 
3

爲Python 3 pip install urllib

在%PYTHON_HOME%\ Lib \ site-packages \ solrcloudpy \ utils.py中找到utils.py

變化import urlparse

from urllib import parse as urlparse 
0

安裝six,Python的2和3兼容庫:

$ sudo -H pip install six 

使用它:

from six.moves.urllib.parse import urlparse 

(編輯:我被刪除的其他回答)

相關問題