Python, Django и virtualenv

000dfdde2

Если вы до сих пор не используете virtualenv — изолированные окружения для Python-проектов, то самое время начать это делать. Профит от этого весьма очевиден — каждое Python-приложение использует только нужные ему библиотеки (нужных версий) и требуемую версию Python. А еще это снижает риск возникновения конфликтов импорта, с которыми пришлось столкнуться мне. Подробности под катом.

Пишется тут неспешно Django-приложение. Есть в нем модель event. Простое, ничем не примечательное название модели. Кроме того, что это же имя используется добрым десятком библиотек моего системного Python. В результате имеем ситуацию, когда:
event.models.*
не срабатывает, т.к. Python просто не знает какой именно event мы хотим (смотри картинку, мой проект закрашен красненьким :) )

screenshot_013

В итоге срабатывает только прямое указание:
app.event.models.*
Однако при этом на продакшн-сервере все правильно и используется virtualenv — приходится править код. И это не есть гут. Вот так и учит жизнь ударами по лбу — надо сразу делать правильно и не лениться. Урок мне на будущее.

Tags: , , ,

2 Responses to “Python, Django и virtualenv”

Leave a Reply

You must be logged in to post a comment.