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
  no module named 'docx' when importing docx MaartenRo 1 899 Dec-31-2023, 11:21 AM
Last Post: deanhystad
  Problem with pymodbus - ModuleNotFoundError: No module named 'pymodbus.client.sync' stsxbel 2 23,835 Nov-02-2023, 08:20 AM
Last Post: South_east
  ModuleNotFoundError: No module named 'requests' Serg 18 2,607 Oct-29-2023, 11:33 PM
Last Post: Serg
  Resolving ImportError: No module named gdb (Python in C++) mandaxyz 3 1,470 Oct-04-2023, 02:43 PM
Last Post: mandaxyz
  ModuleNotFoundError: No module named 'PyPDF2' Benitta2525 1 1,533 Aug-07-2023, 05:32 AM
Last Post: DPaul
  ModuleNotFoundError: No module named 'eyed3' Wimpy_Wellington 2 1,351 Jul-10-2023, 03:37 AM
Last Post: Wimpy_Wellington
  How to fix this error: ModuleNotFoundError: No module named 'notears' yaoyao22 2 1,052 Jul-09-2023, 11:24 AM
Last Post: yaoyao22
  Help with pyinstaller "No module named" korenron 9 9,156 Jun-15-2023, 12:20 PM
Last Post: snippsat
  Problem with Pyinstaller. No module named '_tkinter' tonynapoli2309 0 1,026 May-15-2023, 02:38 PM
Last Post: tonynapoli2309
  File "<string>", line 19, in <module> error is related to what? Frankduc 9 12,599 Mar-09-2023, 07:22 AM
Last Post: LocklearSusan

Forum Jump:

User Panel Messages

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