Установка файла pythonstartup

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

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

Ответ 1

В ~/.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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

Как выполнить файл 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'

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

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

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

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