import numpy as np
import matplotlib.pyplot as plt
def main():
x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
if __name__ == '__main__':
main()
回溯(最近通话最近一次):
File
"/Users/tim/workspace/Python/MachineLearn/test.py", line 2, in <module>
import matplotlib.pyplot as plt
File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 63, in pylab_setup
[backend_name], 0)
File "/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend/backend_interagg.py", line 11, in <module>
from datalore.display import display
File "/Applications/PyCharm.app/Contents/helpers/pycharm_display/datalore/display/__init__.py", line 1, in <module>
from .display_ import *
File "/Applications/PyCharm.app/Contents/helpers/pycharm_display/datalore/display/display_.py", line 5, in <module>
from urllib.parse import urlencode
ImportError: No module named parse
以退出代码1完成的过程
=================
Python:2.7.16
PyCharm Professional:2019.2
=================
顺便说一句,在控制台模式下运行的代码正常工作
答案 0 :(得分:8)
简单答案:禁用“在科学窗口中显示图”(设置->工具-> Python Scientific)或降级PyCharm或将项目移至python3
请记住在代码中添加plt.show()
。
稍微复杂一点。您需要编写自己的导入钩子才能找到urllib.parse
和urllib.request
(display_.py
文件的下一行是请求的。更多信息,请点击此处https://xion.org.pl/2012/05/06/hacking-python-imports/
(我对python 2导入系统还不够熟悉,无法编写它)
答案 1 :(得分:0)
对于python 2使用
from urlparse import urlparse
如果您需要编写与Python2和Python3兼容的代码,则可以使用以下导入
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
在您的PyCharm项目中:
答案 2 :(得分:0)
如@Grzegorz Bokota所述,问题出在PyCharm的“科学视图模式”。此模式可以可视化图形,因此可以调用matplotlib,如果您使用的是Python 2,则可以调用它的不兼容版本。此错误已确认为here ,看来我们只需要等待下一个版本即可解决它。