Рассмотрим следующее:
>>> from django.conf import settings
>>> import os
>>> settings.VIRTUAL_ENV
'C:/Users/Marcin/Documents/oneclickcos'
>>> settings.EXTRA_BASE
'/oneclickcos/'
>>> os.path.join(settings.VIRTUAL_ENV,settings.EXTRA_BASE)
'/oneclickcos/'
Как вы можете себе представить, я не ожидаю и не хочу, чтобы объединение 'C:/Users/Marcin/Documents/oneclickcos'
и '/oneclickcos/'
было '/oneclickcos/'
.
Как ни странно, при реверсировании компонентов пути Python снова игнорирует первый компонент пути:
>>> os.path.join(settings.EXTRA_BASE,settings.VIRTUAL_ENV)
'C:/Users/Marcin/Documents/oneclickcos'
Хотя это работает примерно так, как ожидалось:
>>> os.path.join('/foobar',settings.VIRTUAL_ENV,'barfoo')
'C:/Users/Marcin/Documents/oneclickcos\\barfoo'
Я, конечно, работаю в Windows (Windows 7) с собственным питоном.
Почему это происходит, и что я могу с этим поделать?