diff --git a/dfhack/python/pydfhack/pydfapi.py b/dfhack/python/pydfhack/pydfapi.py index 10b0976d4..27f1ef3cc 100644 --- a/dfhack/python/pydfhack/pydfapi.py +++ b/dfhack/python/pydfhack/pydfapi.py @@ -11,12 +11,9 @@ from .vegetation import Vegetation from .gui import GUI class API(_pydfhack._API): started = None - - for file in ["Memory.xml", os.path.join("..","..","output","Memory.xml")]: - if os.path.isfile(file): - datafile = file - break - else: + path = os.path.dirname(os.path.abspath(__file__)) + datafile = os.path.join(path, "Memory.xml") + if not os.path.isfile(datafile): raise ImportError, "Memory.xml not found." def prepare(self): diff --git a/dfhack/python/setup.py b/dfhack/python/setup.py index 1f95d9238..352eb1e59 100644 --- a/dfhack/python/setup.py +++ b/dfhack/python/setup.py @@ -8,7 +8,7 @@ except ImportError: from distutils.core import Extension from os import path -e = Extension("_pydfhack", +e = Extension("pydfhack._pydfhack", sources=["DF_API.cpp", "DF_Buildings.cpp", "DF_Constructions.cpp", "DF_CreatureManager.cpp", "DF_GUI.cpp", "DF_Maps.cpp", "DF_Material.cpp", "DF_Position.cpp", "DF_Translate.cpp", "DF_Vegetation.cpp", "pydfhack.cpp"], include_dirs=["../", path.join("..", "include"), path.join("..","depends","md5"), path.join("..","depends","tinyxml")], library_dirs=[path.join("..","..","output")], @@ -16,11 +16,20 @@ e = Extension("_pydfhack", libraries=["dfhack"], export_symbols=["init_pydfhack", "ReadRaw", "WriteRaw"]) +for file in ["Memory.xml", path.join("..","..","output","Memory.xml")]: + if path.isfile(file): + datafile = file + break +else: + raise Exception("Memory.xml not found.") + + setup( name="PyDFHack", description="Python wrapper and bindings for DFHack library", version="1.0", packages=find_packages(exclude=['ez_setup']), + data_files=[('pydfhack', [datafile])], include_package_data=True, test_suite='nose.collector', zip_safe=False,