diff --git a/src/rtlsdr_scan.py b/src/rtlsdr_scan.py
index a74de68..374449d 100755
--- a/src/rtlsdr_scan.py
+++ b/src/rtlsdr_scanr.py
@@ -45,11 +45,11 @@ import os.path
import signal
import sys
-from cli import Cli
-from constants import APP_NAME
-from file import File
-from main_window import FrameMain, RtlSdrScanner
-from misc import set_version_timestamp
+from rtlsdr_scanner.cli import Cli
+from rtlsdr_scanner.constants import APP_NAME
+from rtlsdr_scanner.file import File
+from rtlsdr_scanner.main_window import FrameMain, RtlSdrScanner
+from rtlsdr_scanner.misc import set_version_timestamp
if not hasattr(sys, 'frozen'):
try:
diff --git a/src/__init__.py b/src/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/cli.py b/src/cli.py
index 24898aa..421c78b 100644
--- a/src/cli.py
+++ b/src/cli.py
@@ -32,14 +32,14 @@ import threading
import time
from urlparse import urlparse
-from constants import SAMPLE_RATE
-from devices import DeviceRTL, get_devices_rtl
-from events import Event
-from file import save_plot, export_plot, ScanInfo, File
-from location import ThreadLocation
-from misc import nearest, calc_real_dwell, next_2_to_pow, get_dwells
-from scan import ThreadScan, update_spectrum, ThreadProcess
-from settings import Settings
+from .constants import SAMPLE_RATE
+from .devices import DeviceRTL, get_devices_rtl
+from .events import Event
+from .file import save_plot, export_plot, ScanInfo, File
+from .location import ThreadLocation
+from .misc import nearest, calc_real_dwell, next_2_to_pow, get_dwells
+from .scan import ThreadScan, update_spectrum, ThreadProcess
+from .settings import Settings
class Cli(object):
diff --git a/src/dialogs_devices.py b/src/dialogs_devices.py
index 6c3da56..8d0bfac 100644
--- a/src/dialogs_devices.py
+++ b/src/dialogs_devices.py
@@ -30,13 +30,13 @@ from urlparse import urlparse
from wx import grid
import wx
-from constants import TUNER
-from widgets import TickCellRenderer, SatLevel
-from devices import DeviceRTL, DeviceGPS
-from dialogs_prefs import DialogOffset
-from events import Event
-from location import ThreadLocation
-from misc import nearest, limit, get_serial_ports
+from .constants import TUNER
+from .widgets import TickCellRenderer, SatLevel
+from .devices import DeviceRTL, DeviceGPS
+from .dialogs_prefs import DialogOffset
+from .events import Event
+from .location import ThreadLocation
+from .misc import nearest, limit, get_serial_ports
class DialogDevicesRTL(wx.Dialog):
diff --git a/src/dialogs_file.py b/src/dialogs_file.py
index 4d2f21d..44f4d38 100644
--- a/src/dialogs_file.py
+++ b/src/dialogs_file.py
@@ -39,16 +39,16 @@ import wx
from wx.grid import GridCellDateTimeRenderer
from wx.lib.masked.numctrl import NumCtrl, EVT_NUM
-from constants import SAMPLE_RATE, TUNER
-from events import Event
-from file import export_image, File
-from misc import format_time
-from panels import PanelColourBar
-from plot_line import Plotter
-from spectrum import Extent, count_points
-from utils_mpl import get_colours, create_heatmap
-from utils_wx import ValidatorCoord
-from widgets import TickCellRenderer
+from .constants import SAMPLE_RATE, TUNER
+from .events import Event
+from .file import export_image, File
+from .misc import format_time
+from .panels import PanelColourBar
+from .plot_line import Plotter
+from .spectrum import Extent, count_points
+from .utils_mpl import get_colours, create_heatmap
+from .utils_wx import ValidatorCoord
+from .widgets import TickCellRenderer
class DialogProperties(wx.Dialog):
diff --git a/src/dialogs_help.py b/src/dialogs_help.py
index d2c995c..bbf0adb 100644
--- a/src/dialogs_help.py
+++ b/src/dialogs_help.py
@@ -33,8 +33,8 @@ import numpy
import serial
import wx
-from misc import get_version_timestamp
-from utils_wx import load_bitmap
+from .misc import get_version_timestamp
+from .utils_wx import load_bitmap
class DialogSysInfo(wx.Dialog):
diff --git a/src/dialogs_prefs.py b/src/dialogs_prefs.py
index fb98f54..2671d40 100644
--- a/src/dialogs_prefs.py
+++ b/src/dialogs_prefs.py
@@ -33,10 +33,10 @@ import wx
from wx.lib.agw.cubecolourdialog import CubeColourDialog
from wx.lib.masked.numctrl import NumCtrl
-from constants import F_MIN, F_MAX, SAMPLE_RATE, BANDWIDTH, WINFUNC
-from panels import PanelColourBar
-from rtltcp import RtlTcp
-from utils_mpl import get_colours
+from .constants import F_MIN, F_MAX, SAMPLE_RATE, BANDWIDTH, WINFUNC
+from .panels import PanelColourBar
+from .rtltcp import RtlTcp
+from .utils_mpl import get_colours
class DialogOffset(wx.Dialog):
diff --git a/src/dialogs_toolbars.py b/src/dialogs_toolbars.py
index 1104758..06050db 100644
--- a/src/dialogs_toolbars.py
+++ b/src/dialogs_toolbars.py
@@ -26,7 +26,7 @@
import wx
from wx.lib.masked.numctrl import NumCtrl
-from constants import WINFUNC
+from .constants import WINFUNC
class DialogSmoothPrefs(wx.Dialog):
diff --git a/src/dialogs_tools.py b/src/dialogs_tools.py
index f8ce42c..c7baf55 100644
--- a/src/dialogs_tools.py
+++ b/src/dialogs_tools.py
@@ -33,15 +33,15 @@ from wx import grid
import wx
from wx.lib import masked
-from constants import F_MIN, F_MAX, Cal, WINFUNC, PlotFunc
-from events import Event
-from file import File, open_plot
-from misc import format_precision, format_time
-from panels import PanelGraphCompare, PanelLine
-from plot_line import Plotter
-from spectrum import Extent, smooth_spectrum
-from utils_wx import close_modeless
-from widgets import SatLevel
+from .constants import F_MIN, F_MAX, Cal, WINFUNC, PlotFunc
+from .events import Event
+from .file import File, open_plot
+from .misc import format_precision, format_time
+from .panels import PanelGraphCompare, PanelLine
+from .plot_line import Plotter
+from .spectrum import Extent, smooth_spectrum
+from .utils_wx import close_modeless
+from .widgets import SatLevel
class DialogCompare(wx.Dialog):
diff --git a/src/file.py b/src/file.py
index 98bbfa8..2ad2b47 100644
--- a/src/file.py
+++ b/src/file.py
@@ -41,9 +41,9 @@ import matplotlib
from matplotlib.backends.backend_agg import FigureCanvasAgg
import wx
-from constants import APP_NAME
-from misc import format_iso_time
-from spectrum import create_mesh, sort_spectrum
+from .constants import APP_NAME
+from .misc import format_iso_time
+from .spectrum import create_mesh, sort_spectrum
class File(object):
diff --git a/src/location.py b/src/location.py
index 09c8a81..559e1ff 100644
--- a/src/location.py
+++ b/src/location.py
@@ -37,10 +37,10 @@ from urlparse import urlparse
import serial
from serial.serialutil import SerialException
-from constants import LOCATION_PORT, APP_NAME
-from devices import DeviceGPS
-from events import post_event, EventThread, Event, Log
-from misc import format_iso_time, haversine, format_time, limit_to_ascii, limit, \
+from .constants import LOCATION_PORT, APP_NAME
+from .devices import DeviceGPS
+from .events import post_event, EventThread, Event, Log
+from .misc import format_iso_time, haversine, format_time, limit_to_ascii, limit, \
get_resdir
diff --git a/src/main_window.py b/src/main_window.py
index 272dfa0..5cf4003 100644
--- a/src/main_window.py
+++ b/src/main_window.py
@@ -37,34 +37,34 @@ import webbrowser
import wx
from wx.lib.masked.numctrl import NumCtrl
-from constants import F_MIN, F_MAX, MODE, NFFT, DISPLAY, Warn, \
+from .constants import F_MIN, F_MAX, MODE, NFFT, DISPLAY, Warn, \
Cal, Mode, APP_NAME, LOCATION_PORT
-from devices import get_devices_rtl
-from dialogs_devices import DialogDevicesRTL, DialogDevicesGPS
-from dialogs_file import DialogImageSize, DialogExportSeq, DialogExportGeo, \
+from .devices import get_devices_rtl
+from .dialogs_devices import DialogDevicesRTL, DialogDevicesGPS
+from .dialogs_file import DialogImageSize, DialogExportSeq, DialogExportGeo, \
DialogProperties, DialogSaveWarn, DialogRestore
-from dialogs_help import DialogSysInfo, DialogAbout
-from dialogs_prefs import DialogPrefs, DialogAdvPrefs, DialogFormatting
-from dialogs_scan import DialogScanDelay
-from dialogs_tools import DialogCompare, DialogAutoCal, DialogSats, DialogSmooth, \
+from .dialogs_help import DialogSysInfo, DialogAbout
+from .dialogs_prefs import DialogPrefs, DialogAdvPrefs, DialogFormatting
+from .dialogs_scan import DialogScanDelay
+from .dialogs_tools import DialogCompare, DialogAutoCal, DialogSats, DialogSmooth, \
DialogLog
-from events import EVENT_THREAD, Event, EventThread, post_event, Log, EventTimer
-from file import save_plot, export_plot, open_plot, ScanInfo, export_image, \
+from .events import EVENT_THREAD, Event, EventThread, post_event, Log, EventTimer
+from .file import save_plot, export_plot, open_plot, ScanInfo, export_image, \
export_map, extension_add, File, run_file, export_gpx, Backups
-from location import ThreadLocation, LocationServer
-from menus import MenuMain, PopMenuMain
-from misc import RemoteControl, calc_samples, get_dwells, calc_real_dwell, \
+from .location import ThreadLocation, LocationServer
+from .menus import MenuMain, PopMenuMain
+from .misc import RemoteControl, calc_samples, get_dwells, calc_real_dwell, \
get_version_timestamp, get_version_timestamp_repo, format_iso_time, limit
-from panels import PanelGraph
-from printer import PrintOut
-from scan import ThreadScan, update_spectrum, ThreadProcess
-from settings import Settings
-from spectrum import count_points, Extent
-from toolbars import Statusbar, NavigationToolbar
-from utils_google import create_gearth
-from utils_mpl import add_colours
-from utils_wx import load_icon
-from widgets import MultiButton
+from .panels import PanelGraph
+from .printer import PrintOut
+from .scan import ThreadScan, update_spectrum, ThreadProcess
+from .settings import Settings
+from .spectrum import count_points, Extent
+from .toolbars import Statusbar, NavigationToolbar
+from .utils_google import create_gearth
+from .utils_mpl import add_colours
+from .utils_wx import load_icon
+from .widgets import MultiButton
from wx.lib.agw import aui
diff --git a/src/menus.py b/src/menus.py
index 286970b..c7c8f94 100644
--- a/src/menus.py
+++ b/src/menus.py
@@ -24,7 +24,7 @@
#
import wx
-from constants import Mode
+from .constants import Mode
class MenuMain(object):
diff --git a/src/misc.py b/src/misc.py
index 0cd8092..2bfa4e1 100644
--- a/src/misc.py
+++ b/src/misc.py
@@ -36,7 +36,7 @@ import urllib
import serial.tools.list_ports
-from constants import SAMPLE_RATE, TIMESTAMP_FILE
+from .constants import SAMPLE_RATE, TIMESTAMP_FILE
class RemoteControl(object):
diff --git a/src/panels.py b/src/panels.py
index 8d0b98b..d6aa6cf 100644
--- a/src/panels.py
+++ b/src/panels.py
@@ -40,20 +40,20 @@ from matplotlib.lines import Line2D
from matplotlib.ticker import AutoMinorLocator, ScalarFormatter
import wx
-from constants import Display
-from misc import format_precision
-from plot_3d import Plotter3d
-from plot_controls import MouseZoom, MouseSelect
-from plot_line import Plotter
-from plot_preview import PlotterPreview
-from plot_spect import Spectrogram
-from plot_status import PlotterStatus
-from plot_time import PlotterTime
-from spectrum import split_spectrum_sort, Measure, reduce_points
-from toolbars import NavigationToolbar, NavigationToolbarCompare
-from utils_mpl import find_artists
-from utils_wx import close_modeless
-from widgets import GridToolTips, CheckBoxCellRenderer
+from .constants import Display
+from .misc import format_precision
+from .plot_3d import Plotter3d
+from .plot_controls import MouseZoom, MouseSelect
+from .plot_line import Plotter
+from .plot_preview import PlotterPreview
+from .plot_spect import Spectrogram
+from .plot_status import PlotterStatus
+from .plot_time import PlotterTime
+from .spectrum import split_spectrum_sort, Measure, reduce_points
+from .toolbars import NavigationToolbar, NavigationToolbarCompare
+from .utils_mpl import find_artists
+from .utils_wx import close_modeless
+from .widgets import GridToolTips, CheckBoxCellRenderer
import wx.grid as wxGrid
diff --git a/src/plot_3d.py b/src/plot_3d.py
index 4ae5b41..8f5d7fc 100644
--- a/src/plot_3d.py
+++ b/src/plot_3d.py
@@ -35,12 +35,12 @@ from matplotlib.gridspec import GridSpec
from matplotlib.ticker import ScalarFormatter, AutoMinorLocator
from mpl_toolkits.mplot3d import Axes3D # @UnresolvedImport @UnusedImport
-from constants import PlotFunc
-from events import post_event, EventThread, Event
-from misc import format_time, format_precision
-from spectrum import create_mesh, smooth_spectrum, Extent, diff_spectrum, \
+from .constants import PlotFunc
+from .events import post_event, EventThread, Event
+from .misc import format_time, format_precision
+from .spectrum import create_mesh, smooth_spectrum, Extent, diff_spectrum, \
get_peaks
-from utils_mpl import utc_to_mpl
+from .utils_mpl import utc_to_mpl
class Plotter3d(object):
diff --git a/src/plot_controls.py b/src/plot_controls.py
index 65e4792..3f21d1e 100644
--- a/src/plot_controls.py
+++ b/src/plot_controls.py
@@ -26,10 +26,10 @@
import matplotlib
from matplotlib.patches import Rectangle
-from plot_3d import Plotter3d
-from plot_preview import PlotterPreview
-from plot_status import PlotterStatus
-from plot_time import PlotterTime
+from .plot_3d import Plotter3d
+from .plot_preview import PlotterPreview
+from .plot_status import PlotterStatus
+from .plot_time import PlotterTime
class MouseZoom():
diff --git a/src/plot_line.py b/src/plot_line.py
index 57106c4..6571ea0 100644
--- a/src/plot_line.py
+++ b/src/plot_line.py
@@ -38,12 +38,12 @@ from matplotlib.text import Text
from matplotlib.ticker import ScalarFormatter, AutoMinorLocator
import numpy
-from constants import Markers, PlotFunc
-from events import EventThread, Event, post_event
-from misc import format_precision
-from spectrum import Measure, Extent, smooth_spectrum, \
+from .constants import Markers, PlotFunc
+from .events import EventThread, Event, post_event
+from .misc import format_precision
+from .spectrum import Measure, Extent, smooth_spectrum, \
diff_spectrum, delta_spectrum, get_peaks
-from utils_mpl import get_colours
+from .utils_mpl import get_colours
class Plotter(object):
diff --git a/src/plot_preview.py b/src/plot_preview.py
index cec1816..de048ae 100644
--- a/src/plot_preview.py
+++ b/src/plot_preview.py
@@ -27,7 +27,7 @@ import sys
import wx
-from events import post_event, EventThread, Event
+from .events import post_event, EventThread, Event
vvPresent = False
diff --git a/src/plot_spect.py b/src/plot_spect.py
index 379218a..661cc84 100644
--- a/src/plot_spect.py
+++ b/src/plot_spect.py
@@ -37,12 +37,12 @@ from matplotlib.text import Text
from matplotlib.ticker import ScalarFormatter, AutoMinorLocator
import numpy
-from constants import Markers, PlotFunc
-from events import EventThread, Event, post_event
-from misc import format_time, format_precision
-from spectrum import split_spectrum, Measure, smooth_spectrum, Extent, \
+from .constants import Markers, PlotFunc
+from .events import EventThread, Event, post_event
+from .misc import format_time, format_precision
+from .spectrum import split_spectrum, Measure, smooth_spectrum, Extent, \
diff_spectrum, get_peaks
-from utils_mpl import utc_to_mpl
+from .utils_mpl import utc_to_mpl
class Spectrogram(object):
diff --git a/src/plot_status.py b/src/plot_status.py
index 9e23825..afe27e7 100644
--- a/src/plot_status.py
+++ b/src/plot_status.py
@@ -27,9 +27,9 @@ import threading
from matplotlib.font_manager import FontProperties
from matplotlib.table import Table
-from events import post_event, EventThread, Event
-from misc import format_time, format_precision
-from utils_mpl import find_artists, set_table_colour
+from .events import post_event, EventThread, Event
+from .misc import format_time, format_precision
+from .utils_mpl import find_artists, set_table_colour
class PlotterStatus(object):
diff --git a/src/plot_time.py b/src/plot_time.py
index 1d93a51..6b7db0a 100644
--- a/src/plot_time.py
+++ b/src/plot_time.py
@@ -27,8 +27,8 @@ import time
from matplotlib.ticker import ScalarFormatter, AutoMinorLocator
-from events import post_event, EventThread, Event
-from utils_mpl import utc_to_mpl, set_date_ticks
+from .events import post_event, EventThread, Event
+from .utils_mpl import utc_to_mpl, set_date_ticks
class PlotterTime(object):
diff --git a/src/rtlsdr_scan_view.py b/src/rtlsdr_scan_view.py
index a493f4d..0a50a60 100644
--- a/src/rtlsdr_scan_view.py
+++ b/src/rtlsdr_scan_view.py
@@ -29,9 +29,9 @@ from os.path import os
import sys
import wx
-from file import File, open_plot
-from settings import Settings
-from spectrum import sort_spectrum
+from .file import File, open_plot
+from .settings import Settings
+from .spectrum import sort_spectrum
if not hasattr(sys, 'frozen'):
import visvis as vv
diff --git a/src/rtltcp.py b/src/rtltcp.py
index b778fe9..58a7db1 100644
--- a/src/rtltcp.py
+++ b/src/rtltcp.py
@@ -30,7 +30,7 @@ import threading
import numpy
-from events import post_event, EventThread, Event
+from .events import post_event, EventThread, Event
class RtlTcpCmd(object):
diff --git a/src/scan.py b/src/scan.py
index dc58e1e..8f21d99 100644
--- a/src/scan.py
+++ b/src/scan.py
@@ -31,8 +31,8 @@ import time
import matplotlib
import rtlsdr
-from constants import SAMPLE_RATE, BANDWIDTH, WINFUNC
-from events import EventThread, Event, post_event
+from .constants import SAMPLE_RATE, BANDWIDTH, WINFUNC
+from .events import EventThread, Event, post_event
import rtltcp
from collections import OrderedDict
diff --git a/src/settings.py b/src/settings.py
index 73dff10..0152e9b 100644
--- a/src/settings.py
+++ b/src/settings.py
@@ -27,8 +27,8 @@ import ConfigParser
import wx
-from constants import Display, Mode, PlotFunc
-from devices import DeviceRTL, format_device_rtl_name, DeviceGPS
+from .constants import Display, Mode, PlotFunc
+from .devices import DeviceRTL, format_device_rtl_name, DeviceGPS
class Settings(object):
diff --git a/src/spectrum.py b/src/spectrum.py
index f0ae4a1..c3821d9 100644
--- a/src/spectrum.py
+++ b/src/spectrum.py
@@ -29,9 +29,9 @@ from operator import itemgetter, mul
from matplotlib.dates import seconds
import numpy
-from constants import WINFUNC
-from misc import db_to_level, level_to_db
-from utils_mpl import utc_to_mpl
+from .constants import WINFUNC
+from .misc import db_to_level, level_to_db
+from .utils_mpl import utc_to_mpl
class Extent(object):
diff --git a/src/toolbars.py b/src/toolbars.py
index 5b4dbc1..e930e0f 100644
--- a/src/toolbars.py
+++ b/src/toolbars.py
@@ -33,13 +33,13 @@ from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg
import wx
from wx.animate import AnimationCtrl, Animation
-from constants import Display, PlotFunc
-from dialogs_toolbars import DialogSmoothPrefs, DialogPeakThreshold
-from events import Log
-from misc import get_resource_path
-from utils_mpl import get_colours
-from utils_wx import load_bitmap
-from widgets import Led
+from .constants import Display, PlotFunc
+from .dialogs_toolbars import DialogSmoothPrefs, DialogPeakThreshold
+from .events import Log
+from .misc import get_resource_path
+from .utils_mpl import get_colours
+from .utils_wx import load_bitmap
+from .widgets import Led
class Statusbar(wx.StatusBar):
diff --git a/src/utils_google.py b/src/utils_google.py
index 1aeb518..2e55c90 100644
--- a/src/utils_google.py
+++ b/src/utils_google.py
@@ -22,7 +22,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-from constants import APP_NAME, LOCATION_PORT
+from .constants import APP_NAME, LOCATION_PORT
def create_gearth(handle):
diff --git a/src/utils_wx.py b/src/utils_wx.py
index 0c72173..207eaf7 100644
--- a/src/utils_wx.py
+++ b/src/utils_wx.py
@@ -27,7 +27,7 @@ import os
import wx
-from misc import get_resdir, get_script_dir
+from .misc import get_resdir, get_script_dir
class ValidatorCoord(wx.PyValidator):