安装 pythonstartup 文件

20 投票
4 回答
25207 浏览
提问于 2025-04-16 16:41

我想知道怎么安装 pythonstartup 文件,让它可以像 python myfile.py 这样直接运行。

我试着把它放到我的 /home/myuser 目录下(我用的是Ubuntu),但是系统提示我权限不够。而且,有些地方说这个文件名要全大写,有些又说要全小写,还要在前面加个点。Python的命令行指南似乎也没有解释这个文件应该放在哪,或者怎么修改环境变量来“指向”这个文件。

4 个回答

4

在Windows系统上,你可以把启动脚本放在任何地方,只要把它的路径放进PYTHONSTARTUP这个环境变量里就行。在Windows中,环境变量的名字大小写是无所谓的。

你可以按照我之前提到的一个相关回答中的说明来定义用户和系统环境变量的值,具体可以查看这里

6

如何在执行像 python foobar.py 这样的文件时,运行在 $PYTHONSTARTUP 中定义的 Python 文件

运行这个命令来找出你的操作系统是在哪里定义 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 的全局配置功能,并在 usercustomize.py 文件中导入了库,这个文件会在运行 foobar.py 之前执行。

文档链接: https://docs.python.org/2/library/site.html

我在哪里找到这个技巧: https://nedbatchelder.com/blog/201001/running_code_at_python_startup.html

49

在你的 ~/.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

撰写回答