Я всегда использую:
__location__ = os.path.realpath(
os.path.join(os.getcwd(), os.path.dirname(__file__)))
вызов join()
добавляет текущий рабочий каталог, но в документации говорится, что если какой-то путь является абсолютным, все остальные пути, оставшиеся от него, будут удалены. Поэтому getcwd()
отбрасывается, когда dirname(__file__)
возвращает абсолютный путь.
Кроме того, вызов realpath
разрешает символические ссылки, если они найдены. Это позволяет избежать проблем при развертывании с помощью setuptools в системах Linux (сценарии привязаны к /usr/bin/
- по крайней мере, на Debian).
Вы можете использовать следующее для открытия файлов в одной папке:
f = open(os.path.join(__location__, 'bundled-resource.jpg'));
# ...
Я использую это для объединения ресурсов с несколькими приложениями Django как в Windows, так и в Linux, и он работает как прелесть!
Пожалуйста, используйте метод remove
в вашем приеме Fragment
(после того, как вам больше не нужны эти значения):
getArguments().remove("listOfImages");
getArguments().remove("listOfNames");