Ich habe ein ausführbares Ei erstellt, um es als einzelne ausführbare Datei zu erstellen.
setup.py:
#!/usr/bin/env python
from setuptools import setup, find_packages
setup(
name='app',
version='0.5',
description='foo',
author='microo8',
author_email='xxx@email.com',
packages=["foo", "bar"],
install_requires=["sqlalchemy>=0.7", "paramiko>=1.7.7.1"],
entry_points = {
'setuptools.installation': [
'eggsecutable = foo.module:main',
]
}
)
Jetzt kann ich es aufrufen: ./app-0.5-py2.7.egg
, aber die relativen Pfade sind alle im Ei. Wenn ich in der main
-Funktion print __file__
aufrufe, wird /home/user/app-0.5-py2.7.egg/foo/module.py
gedruckt. Ich möchte eine Konfigurationsdatei lesen, die sich im gleichen Verzeichnis wie das Ei befinden muss. Und das gleiche Skript muss auch als "non-egg" ausführbar sein, sodass die Konfigurationsdatei im Verzeichnis mit dem Skript liegt.
Wie kann ich herausfinden, dass das Skript aus einem Ei ausgeführt wird und auch den Eipfad?