尽管有许多pip冻结和尝试,我似乎无法获得与我的开发环境相同的版本的urllib在heroku。我的需求是最新的,代码在我的开发机器上运行良好,但我无法克服生产环境上的错误,该错误必须归结为urllib的版本。
from urlparse import quote_plus
2015-11-05T08:24:38.133387+00:00 app[web.1]: ImportError: cannot import name quote_plus尽管我尝试了以下导入:
try:
from urllib.parse import quote_plus
except ImportError:
from urlparse import quote_plus还有我的requirements.txt
blinker==1.4
bson==0.4.1
Flask==0.10.1
Flask-Mail==0.9.1
flask-mongoengine==0.7.1
Flask-PyMongo==0.3.1
Flask-Sendmail==0.1
Flask-WTF==0.12
gunicorn==19.3.0
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
mongoengine==0.10.0
pymongo==2.9
pytz==2015.7
requests==2.8.1
six==1.10.0
urllib3==1.12
Wand==0.4.1
Werkzeug==0.10.4
WTForms==2.0.2发布于 2015-11-05 09:08:23
这与urllib3无关。您要导入的函数是标准库的一部分。
但是,它在Python 2和3中处于不同的位置,这是您的try/ your应该处理的问题。但是Python2的位置错了:它在urllib中,而不是urlparse中。
实际上,您应该尝试在这两种环境中运行相同版本的Python。通过在runtime.txt文件中指定Python 3,确保告诉Heroku使用Python3。
https://stackoverflow.com/questions/33539809
复制相似问题