# ImportError: no module named shared

**URL:** <https://forum.inductiveautomation.com/t/importerror-no-module-named-shared/54550>\
**Category:** Ignition\
**Tags:** ignition79, scripting\
**Created:** [December 30, 2021, 5:06pm UTC](https://forum.inductiveautomation.com/t/importerror-no-module-named-shared/54550 "2021-12-30T17:06:26Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jtyler](https://avatars.discourse-cdn.com/v4/letter/j/53a042/32.png) [@jtyler](https://forum.inductiveautomation.com/u/jtyler)\
**Post date:** [December 30, 2021, 5:06pm UTC](https://forum.inductiveautomation.com/t/importerror-no-module-named-shared/54550/1 "2021-12-30T17:06:26Z")

</div>

Hello,  
I am receiving this error:

Traceback (most recent call last):  
File “event:propertyChange”, line 2, in   
File “”, line 8, in check  
ImportError: No module named shared

```
at org.python.core.Py.ImportError(Py.java:304)
at org.python.core.imp.import_first(imp.java:755)
at org.python.core.imp.import_module_level(imp.java:837)
at org.python.core.imp.importName(imp.java:917)
at org.python.core.ImportFunction. __call__ ( __builtin__.java:1220)
at org.python.core.PyObject. __call__ (PyObject.java:357)
at org.python.core. __builtin__. __import__ ( __builtin__.java:1173)
at org.python.core.imp.importOneAs(imp.java:954)
at org.python.pycode._pyx2849.check$1(<custom-function check>:25)
at org.python.pycode._pyx2849.call_function(<custom-function check>)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
at org.python.core.PyFunction. __call__ (PyFunction.java:317)
at org.python.core.PyMethod. __call__ (PyMethod.java:109)
at org.python.pycode._pyx2848.f$0(<event:propertyChange>:2)
at org.python.pycode._pyx2848.call_function(<event:propertyChange>)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1275)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:636)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.runActions(ActionAdapter.java:180)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter.access$000(ActionAdapter.java:40)
at com.inductiveautomation.factorypmi.application.binding.action.ActionAdapter$ActionRunner.run(ActionAdapter.java:286)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

```

Ignition v7.9.13 (b2019120915)  
Java: Azul Systems, Inc. 9.0.7.4

on a custom template with a propertyChange event handler:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/9/c9823c4b037b74bf3595eb87402d7f8990cb564f.png)

and the custom method “check” is failing on the following line:  
import shared.Util.Validate as validate

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/1/f10de7592ce059fb2bf0780af28006055c02e26b.png)

Any help is greatly appreciated.  
Thanks  
Jesse

---

<div class="post-metadata">

**Author:** ![jespinmartin1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jespinmartin1/32/57175_2.png) [@jespinmartin1](https://forum.inductiveautomation.com/u/jespinmartin1)\
**Post date:** [December 31, 2021, 3:25pm UTC](https://forum.inductiveautomation.com/t/importerror-no-module-named-shared/54550/2 "2021-12-31T15:25:58Z")

</div>

You don’t have to import script resources. Just use it as a method.

```auto
validate = shared.Util.Valite(params**)

```
