安装pythonstartup文件

时间:2011-04-29 20:49:22

标签: python unix windows-7 installation

如何安装pythonstartup文件,使其在python myfile.py等命令上运行?

我尝试将其安装到Ubuntu的/home/myuser目录中,但它说我没有足够的权限。此外,不同的地方交替地说,它应该是全部大写或全部小写,前一段时间。 Python命令行指南似乎没有解释放置文件的位置,或者如何更改哪个环境变量“指向”它。

4 个答案:

答案 0 :(得分:37)

~/.bashrc

export PYTHONSTARTUP=$HOME/.pythonstartup

并将您的python代码放在​​$HOME/.pythonstartup中,如:

import rlcompleter
import readline

readline.parse_and_bind("tab: complete")

然后运行交互式shell:

python

查看PYTHONSTARTUP的导入已处理。这仅适用于python交互模式。

有关PYTHONSTARTUP变量的更多信息,请阅读python手册页:

$ man python

答案 1 :(得分:3)

在Windows上,只要将路径放入PYTHONSTARTUP环境变量,就可以将启动脚本放在任何位置。在Windows上,环境变量名称的字母并不重要。

您可以定义用户和系统环境变量的值,如我的here的某个相关答案所述。

答案 2 :(得分:2)

我假设您的意思是PYTHONSTARTUP环境变量?尝试在主目录中放置一些文件my-python-startup.py和一些有趣的内容,然后在命令行中发出以下命令:

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

并观察会发生什么。然后将上面第一行放在homedir中的(hidden!)文件.bashrc中,让它在终端会话中保持不变。

答案 3 :(得分:1)

执行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'

刚刚发生了什么。

您在foobar.py之前运行的usercustomize.py文件中使用了python sitewide特定的python配置挂钩和导入的库。

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

我发现了这个伎俩:https://nedbatchelder.com/blog/201001/running_code_at_python_startup.html