Установка файла 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