Python Forum
ModuleNotFoundError: No module named 'plotly.validators.scatter3d.line'
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ModuleNotFoundError: No module named 'plotly.validators.scatter3d.line'
#1
I’m running into a ModuleNotFound error with plotly when running the below die_visual.py script. It imports plotly libraries and another small random script called die.py (below as well). These are short scripts so I took screenshots with line numbers to help. These are from the PytonCrashCourse book. The script works fine until I try to graph with plotly (lines 22-29 in die_visual.py).

Python Scripts:
#die.py
from random import randint

class Die:
    """A class representing a single die."""
    
    def __init__(self, num_sides=6):
        """Assume a six-sided die."""
        self.num_sides = num_sides
        
    def roll(self):
        """"Return a random value between 1 and number of sides."""
        return randint(1, self.num_sides)
#die_visual.py
from plotly.graph_objs import Bar, Layout
from plotly import offline

from die import Die

#Create a D6.
die = Die()

#Make some rolls, and store results in a list.
results = [  ]
for roll_num in range(1000):
    result = die.roll()
    results.append(result)
    
#Analyze the results.
frequencies = [  ]
for value in range(1, die.num_sides+1):
    frequency = results.count(value)
    frequencies.append(frequency)
    
#Visualize the results.
x_values = list(range(1, die.num_sides+1))
data = [Bar(x=x_values, y=frequencies)]

x_axis_config = {'title': 'Result'}
y_axis_config = {'title': 'Frequency of Result'}
my_layout = Layout(title='Results of rolling one D6 1000 times',
        xaxis=x_axis_config, yaxis=y_axis_config)
offline.plot({'data': data, 'layout': my_layout}, filename='d6.html')
Basic error output:
$ python3 die_visual.py
Traceback (most recent call last):
File "die_visual.py", line 29, in <module>
offline.plot({'data': data, 'layout': my_layout}, filename='d6.html')
<snip. see full output at bottom of post>
File "E:\Python\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'plotly.validators.scatter3d.line'

Trouble-shooting efforts:
-Narrowing google searches stopping at ‘plotly.validators.scatter3d.line’
-I tried running the script from Idle and powershell directly in case there is something wonky with GitBash (MINGW64 on Windows10) but to no avail (same error in all three cases)
-Posted this same issue to the plotly.com forums. No responses yet.
https://community.plotly.com/t/modulenot...line/42174

Skill Level:
My programming and Python skills are above basic but below intermediate.

Version information is below:
$ python --version
Python 3.8.1

$ pip -V
pip 20.1.1 from e:\python\python38\lib\site-packages\pip (python 3.8)

$ pip show plotly
Name: plotly
Version: 4.8.2
Summary: An open-source, interactive data visualization library for Python
Home-page: https://plotly.com/python/
Author: Chris P
Author-email: chris at plot.ly
License: MIT
Location: e:\python\python38\lib\site-packages
Requires: six, retrying
Required-by:

$ pip check plotly
No broken requirements found.

The full error output below:
$ python3 die_visual.py
Traceback (most recent call last):
File "die_visual.py", line 29, in <module>
offline.plot({'data': data, 'layout': my_layout}, filename='d6.html')
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\offline\offline.py", line 586, in plot
pio.write_html(
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\io\_html.py", line 508, in write_html
html_str = to_html(
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\io\_html.py", line 131, in to_html
fig_dict = validate_coerce_fig_to_dict(fig, validate)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\io\_utils.py", line 15, in validate_coerce_fig_to_dict
fig_dict = plotly.graph_objs.Figure(fig).to_plotly_json()
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\_figure.py", line 584, in __init__
super(Figure, self).__init__(data, layout, frames, skip_invalid, **kwargs)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 189, in __init__
self._layout_obj = self._layout_validator.validate_coerce(
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2446, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\_layout.py", line 6004, in __init__
self["template"] = _v
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 4955, in __setitem__
super(BaseLayoutHierarchyType, self).__setitem__(prop, value)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3971, in __setitem__
self._set_compound_prop(prop, value)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 4356, in _set_compound_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2739, in validate_coerce
return super(BaseTemplateValidator, self).validate_coerce(
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2446, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\layout\_template.py", line 319, in __init__
self["data"] = _v
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3971, in __setitem__
self._set_compound_prop(prop, value)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 4356, in _set_compound_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2446, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\layout\template\_data.py", line 1649, in __init__
self["scatter3d"] = _v
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3975, in __setitem__
self._set_array_prop(prop, value)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 4430, in _set_array_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2538, in validate_coerce
res.append(self.data_class(v_el, skip_invalid=skip_invalid))
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\_scatter3d.py", line 2315, in __init__
self["line"] = _v
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3971, in __setitem__
self._set_compound_prop(prop, value)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 4356, in _set_compound_prop
val = validator.validate_coerce(val, skip_invalid=self._skip_invalid)
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2446, in validate_coerce
v = self.data_class(v, skip_invalid=skip_invalid, _validate=_validate)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\graph_objs\scatter3d\_line.py", line 896, in __init__
self["colorbar"] = _v
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3967, in __setitem__
validator = self._get_validator(prop)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3458, in _get_validator
return ValidatorCache.get_validator(self._path_str, prop)
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\validator_cache.py", line 29, in get_validator
importlib.import_module("plotly.validators." + parent_path),
File "E:\Python\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'plotly.validators.scatter3d.line'

Help?
Reply
#2
I'm on 3.8.2/MacOS, but otherwise similar. It appeared to work for me (opened a web page with 6 bars on it and no error). You appear to be on windows. I've seen before bugs where something assumed a case insensitive filesystem, but I don't see any files that look like they would conflict in this manner.

You might want to try setting up a new venv, install only plotly and see if it happens in that venv as well.
Reply
#3
Thanks for the suggestion. I moved the scripts to a venv, installed plotly==4.8.2 and the same error persists.
Uninstalled v4.8.2 and installed 4.7.0. Same error.
Tried v4.0.0 with the same error.
I'm at a loss with figuring this out.
Reply
#4
Tested code and it work Python 3.8.3 and Win-10.
The problem is that there is two Python version in that error message.
Example.
# Start
C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\offline\offline.py
# jump
File "E:\Python\Python38\lib\site-packages\_plotly_utils\basevalidators.py", line 2739, in validate_coerce
# jump back
File "C:\Users\jebrow1\AppData\Roaming\Python\Python38\site-packages\plotly\basedatatypes.py", line 3971, in __setitem__
self._set_compound_prop(prop, value)
.....ect
This is you main version
$ pip -V
pip 20.1.1 from e:\python\python38\lib\site-packages\pip (python 3.8)

# Same in <pip show plotly>
Location: e:\python\python38\lib\site-packages
So you have to get rid of this version.
C:\Users\jebrow1\AppData\Roaming\Python\Python38
Try uninstall,go into Roaming folder and make sure it gone(delete).
Check environment variables ,Restart and try again.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  ModuleNotFoundError: No module named 'tkcalendar', Thonny, Windows 10 Edward_ 4 341 Yesterday, 07:56 PM
Last Post: Edward_
  No module named 'importlib.metadata' EdVS 3 918 Jan-30-2025, 09:55 AM
Last Post: Larz60+
  ModuleNotFoundError: No module named 'athena_read' raman 2 1,238 Jul-01-2024, 07:52 AM
Last Post: Gribouillis
  no module named 'docx' when importing docx MaartenRo 1 5,289 Dec-31-2023, 11:21 AM
Last Post: deanhystad
  Problem with pymodbus - ModuleNotFoundError: No module named 'pymodbus.client.sync' stsxbel 2 30,850 Nov-02-2023, 08:20 AM
Last Post: South_east
  ModuleNotFoundError: No module named 'requests' Serg 18 9,576 Oct-29-2023, 11:33 PM
Last Post: Serg
  Resolving ImportError: No module named gdb (Python in C++) mandaxyz 3 4,316 Oct-04-2023, 02:43 PM
Last Post: mandaxyz
  ModuleNotFoundError: No module named 'PyPDF2' Benitta2525 1 3,689 Aug-07-2023, 05:32 AM
Last Post: DPaul
  ModuleNotFoundError: No module named 'eyed3' Wimpy_Wellington 2 3,112 Jul-10-2023, 03:37 AM
Last Post: Wimpy_Wellington
  How to fix this error: ModuleNotFoundError: No module named 'notears' yaoyao22 2 2,366 Jul-09-2023, 11:24 AM
Last Post: yaoyao22

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020