Вы можете быть zip-safe и в то же время использовать удобный удобный API, если используете twisted.python.modules .
Например, если у меня есть data.txt
с некоторым текстом в нем, и это sample.py
в одном каталоге:
from twisted.python.modules import getModule
moduleDirectory = getModule(__name__).filePath.parent()
print repr(moduleDirectory.child("data.txt").open().read())
, тогда импорт sample
сделает это:
>>> import sample
'Hello, data!\n'
>>>
Если ваш модуль находится в обычном каталоге, getModule(__name__).filePath
будет FilePath ; если он находится в zip-файле, это будет ZipPath , который поддерживает большинство, но не все, одинаковых API.