# Python scripted module code organization

**URL:** https://discourse.slicer.org/t/python-scripted-module-code-organization/6339
**Category:** Development
**Created:** [March 30, 2019, 11:04pm UTC](https://discourse.slicer.org/t/python-scripted-module-code-organization/6339 "2019-03-30T23:04:40Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![michalikthomas](https://avatars.discourse-cdn.com/v4/letter/m/7cd45c/32.png) [@michalikthomas](https://discourse.slicer.org/u/michalikthomas)
#### Post date: [March 30, 2019, 11:04pm UTC](https://discourse.slicer.org/t/python-scripted-module-code-organization/6339/1 "2019-03-30T23:04:40Z")

</div>

What is the recommended way to distribute and initiate source code in a scripted module - separating code into multiple files?

I am not sure about importing files. When I add ` __init__.py` into a scripted module folder to import all files within the module folder, then during the Slicer startup appears following error:

```
SystemError: /work/Stable/Slicer-4101-build/Python-2.7.13/Objects/classobject.c:521: bad argument to internal function

```

Slicer version: Slicer-4.10.1-linux-amd64

---

<div class="post-metadata">

### Author: ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)
#### Post date: [March 31, 2019, 4:36am UTC](https://discourse.slicer.org/t/python-scripted-module-code-organization/6339/2 "2019-03-31T04:36:45Z")

</div>

Python modules must be in subfolder(s). See for example how it is done in [DataProbe module](https://github.com/Slicer/Slicer/tree/master/Modules/Scripted/DataProbe).
