Установка файла pythonstartup - PullRequest
15 голосов
/ 30 апреля 2011

Как установить файл pythonstartup, чтобы он запускался по команде, подобной python myfile.py?

Я пытался установить его в каталог /home/myuser для Ubuntu, но там говорилось, что у меня недостаточноразрешения.Кроме того, в разных местах поочередно говорят, что он должен быть во всех заглавных или во всех строчных буквах с точкой перед ним.Руководство по командной строке Python, похоже, не объясняет, куда поместить файл или как изменить переменную окружения, указав на него.

Ответы [ 4 ]

37 голосов
/ 30 апреля 2011

В вашем ~/.bashrc:

export PYTHONSTARTUP=$HOME/.pythonstartup

и введите свой код Python в $HOME/.pythonstartup, например:

import rlcompleter
import readline

readline.parse_and_bind("tab: complete")

Затем запустите интерактивную оболочку:

python

См. Импорт из PYTHONSTARTUP обработан. Это работает только в интерактивном режиме Python.

Для получения дополнительной информации о переменной PYTHONSTARTUP прочитайте справочную страницу python:

$ man python
3 голосов
/ 30 апреля 2011

В Windows вы можете поместить свой скрипт запуска практически в любое место, если только вы указали его путь в переменной среды PYTHONSTARTUP.В Windows буквенный регистр имен переменных среды не имеет значения.

Вы можете определить значения переменных среды пользователя и системы, как описано в несколько связанном с моим ответе здесь .

2 голосов
/ 30 апреля 2011

Я предполагаю, что вы имеете в виду переменную окружения PYTHONSTARTUP?Попробуйте поместить файл my-python-startup.py с некоторым интересным содержимым в ваш домашний каталог, а затем введите в командной строке следующее:

export PYTHONSTARTUP=$HOME/my-python-startup.py
python

и посмотрите, что произойдет.Затем поместите первую из приведенных выше строк в (скрытый!) Файл .bashrc в вашем домашнем каталоге, чтобы сохранить его в сеансах терминала.

1 голос
/ 29 сентября 2017

Как выполнить файл python, определенный в $ PYTHONSTARTUP, при запуске файла, подобного python foobar.py

Запустите эту команду, чтобы узнать, где определена ваша ОС USER_SITE:

$ python -c "import site; site._script()" 

Шахта говорит:

USER_SITE: '/home/el/.local/lib64/python2.7/site-packages'

Создайте там новый файл с именем /home/el/.local/lib64/python2.7/site-packages/usercustomize.py, вставьте туда этот код:

try:
    import your_things
    import readline
    print("ROCKETMAN!")

except ImportError:
    print("Can't load your things")
    print("Either exit here, or perform remedial actions")
    exit()

Закройте терминал и снова откройте его, чтобы удалить все махинации.

Создайте новый файл python foobar.py в любом месте файловой системы, поместите этот код втам:

#Note there is no your_things module imported here.
#Print your_things version:
print(your_things.__version__)

Запустите его:

python foobar.py 
ROCKETMAN!
'1.12.0'

Что только что произошло.

Вы использовалиспецифический для Python хук конфигурации Python и импортированные библиотеки в файле usercustomize.py, который работал до foobar.py.

Документация: https://docs.python.org/2/library/site.html

Где я нашел этот трюк: https://nedbatchelder.com/blog/201001/running_code_at_python_startup.html

...