CentOS 7でREST APIを実行しようとしています。urllib.parseはPython 3にありますが、Python 2.7.5を使用しています。このモジュールのインストール方法がわかりません。
すべての要件をインストールしましたが、プロジェクトを実行できません。
URLを探しているとき、私はこれを取得します(閲覧可能なインターフェイスを使用しています):
出力:
ImportError at /stamp/
No module named urllib.parse
Python2およびPython3互換のコードを記述する必要がある場合は、次のインポートを使用できます
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
Python2を使用してurlparseが必要です:
from urlparse import urlparse
提供した情報を使用して、Python 3.xを使用するのが最善の策です。
エラーは、urllib.parse
をインポートしようとしている場合、コードがPython 3向けに記述されている可能性があることを示唆しています。ソフトウェアを作成し、そのソースコードを制御している場合、shouldインポートを次のように変更します。
from urlparse import urlparse
urllib
は、Pythonでurllib.parse
、urllib.request
、およびurllib.error
に分割されました3。
CentOSのソフトウェアコレクションをすばやく確認することをお勧めします変更できない場合何らかの理由でインポート。次のようなPython 3.3を取り込むことができます。
yum install centos-release-SCL
yum install python33
scl enable python33
SCLの詳細については、 this page outを確認してください。
six 、Python 2および3互換性ライブラリをインストールします。
$ Sudo -H pip install six
これを使って:
from six.moves.urllib.parse import urlparse
(編集:他の回答を削除しました)
python3
はurllib.parse
をサポートし、python2
はurlparse
をサポートします
両方の互換性が必要な場合は、次のコードが役立ちます。
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
python 3 pip install urllibの場合
%PYTHON_HOME%\ Lib\site-packages\solrcloudpy\utils.pyでutils.py
を見つけます
import urlparse
を
from urllib import parse as urlparse
Python 3の場合、次を使用します。
import urllib.parse
Urllib.parseを手動でインクルードします。 https://docs.python.org/3.3/library/urllib.parse.html#module-urllib.parse
問題はDjango(1.4.10)の下位バージョンがあったため、Django Rest Frameworkには少なくともDjango 1.4.11以上が必要だからです。彼らの回答をありがとう!
Django Restの要件へのリンク: http://www.Django-rest-framework.org/