Чрезмерное использование sitecustomize.py : .bash_profile вместо этого?

#python #django #shell #.bash-profile

#python #django #оболочка #bash

Вопрос:

Может быть, это потому, что мне удобнее использовать python вместо командной строки, но я решил добавить в свой sys.path список в /usr/lib/python[x.x]/sitecustomize.py таким образом:

 base = '/home/droogans/py/'

locs = ['foo','django']

for loc in locs:
    sys.path.insert(0, base   loc)
  

И теперь я добавил try:except блок под ним, на случай, если я захочу протестировать шаблон без использования python manage.py shell подхода.

 try:
    from django.core.management import setup_environ
    from website_foobar import settings
    setup_environ(settings)
except ImportError:
    pass
  

В DjangoBook есть раздел «Специальное приглашение python«, который рекомендует вам сделать это, но предлагает использовать ваш .bash_profile сценарий оболочки для выполнения задачи. Есть ли измеримая выгода от использования этого вместо sitecustomize.py скрипта? Очевидно, я уже закончил, поэтому мне понадобятся какие-то убедительные доказательства, чтобы найти в Google статью о написании shell-кода.

Ответ №1:

Иногда у вас не будет статуса суперпользователя на используемой вами машине. В таких случаях вы не сможете изменить /usr , поэтому было бы необходимо знать, как установить переменные среды в вашем личном ~/.bashrc или ~/.profile или ~/.bash_profile . (Конкретный используемый файл зависит от вашей системы).

Это не сложно сделать. Все, что вам нужно добавить (я думаю!), это что-то вроде

 PYTHONPATH=$HOME/py/foo:$HOME/py/django
DJANGO_SETTINGS_MODULE=website_foobar.settings

export PYTHONPATH DJANGO_SETTINGS_MODULE
  

Комментарии:

1. Хм. Это выглядит примерно безболезненно. Я забыл прописать дополнительный шаг в моей sudo gedit /usr/lib/python[x.x]/... команде, маленькая деталь, которая действительно действует мне на нервы. Спасибо, что указали на разницу.

2. Итак, вы хотите сказать, что пользователь, входящий в учетную запись «гость» без учетных данных на моем компьютере, будет иметь доступ к django-templates…is это то, о чем стоит беспокоиться?

3.Если бы вы изменили group и other read/execute разрешения в вашем каталоге django, то они не смогли бы прочитать ваши файлы. Я думаю, что это просто неиспользуемый каталог в их sys.path . Однако это все еще не идеальный способ настройки многопользовательской машины.

4. Я вставил это туда под ~/.bashrc with export PYTHONPATH=~/py/django:~/py/foo , являющимся единственной строкой. Самое приятное, что это применимо ко всем моим сеансам python 2.6 и 3.1. Спасибо.