diff --git a/.gitignore b/.gitignore
index bcaae936ae4e4e73effe812c0f8a14999d760d1e..0f99fc4d57ecb4e33f3a64ed494311f19800aa62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
 .idea
 plots
 __pycache__
+build
+dist
+*.egg-info
diff --git a/Pipfile b/Pipfile
index 1cf969a7bf9df7e9bfcb4c9f2521ba339635f40a..17c4b913cdd89e63c8c2a3286acc7438a76f7dd0 100644
--- a/Pipfile
+++ b/Pipfile
@@ -11,7 +11,6 @@ pandas = "*"
 networkx = "*"
 network2tikz = {editable = true,path = "/home/mark/Projekte/network2tikz"}
 requests = "*"
-rtree = "*"
 
 [requires]
 python_version = "3.7"
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..61572d1c0c78587b74d864f8bdaeb5b67db9c7f5
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,34 @@
+"""A setuptools based setup module.
+See:
+https://packaging.python.org/guides/distributing-packages-using-setuptools/
+https://github.com/pypa/sampleproject
+"""
+
+# Always prefer setuptools over distutils
+from setuptools import setup, find_packages
+from os import path
+
+here = path.abspath(path.dirname(__file__))
+
+# Get the long description from the README file
+with open(path.join(here, 'README.md'), encoding='utf-8') as f:
+    long_description = f.read()
+
+setup(
+    name='evroutingtools',
+    version='0.0.1',
+    long_description=long_description,
+    long_description_content_type='text/markdown',
+    url='https://git.imp.fu-berlin.de/markn92/ba',
+    author='Mark Niehues',
+    classifiers=[
+        'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
+    ],
+    packages=['evrouting'],
+    python_requires='>=3.4.*, <4',
+    install_requires=[
+        'networkx',
+        'requests'
+    ]
+)