jav*_*web 44 python django urllib
我正在尝试在CentOS 7上运行REST API,我读到urllib.parse在Python 3中,但我使用的是Python 2.7.5,所以我不知道如何安装这个模块.
我安装了所有要求,但仍然无法运行项目.
当我在寻找一个URL时,我得到了这个(我正在使用可浏览的界面):
输出:
ImportError at /stamp/
No module named urllib.parse
Run Code Online (Sandbox Code Playgroud)
小智 80
如果您需要编写兼容Python2和Python3的代码,可以使用以下导入
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)
Pad*_*ham 20
你想使用python2 urlparse:
from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)
Min*_*Soe 18
根据您提供的信息,您最好的选择是使用Python 3.x.
您的错误表明代码可能是为Python 3编写的,因为它正在尝试导入urllib.parse.如果您已编写软件并控制其源代码,则应将导入更改为:
from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)
urllib被拆分为urllib.parse,urllib.request和urllib.errorPython 3.
如果由于某种原因无法更改导入,我建议您快速查看CentOS中的软件集合.你可以像这样引入Python 3.3:
yum install centos-release-SCLyum install python33scl enable python33有关SCL的更多信息,请查看此页面
Mar*_*oma 10
安装六,Python 2和3兼容性库:
$ sudo -H pip install six
Run Code Online (Sandbox Code Playgroud)
用它:
from six.moves.urllib.parse import urlparse
Run Code Online (Sandbox Code Playgroud)
(编辑:我删除了另一个答案)
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
Run Code Online (Sandbox Code Playgroud)
对于 python 3 pip 安装 urllib
utils.py在 %PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py 中找到
更改import urlparse为
from urllib import parse as urlparse
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123380 次 |
| 最近记录: |