Python启动脚本

gt6*_*89b 5 python startup

我想work.py在执行一些初始化脚本后在Python中执行一个脚本init.py.

如果我正在寻找一个交互式会话,执行python -i init.py或设置PYTHONSTARTUP=/path/to/init.py会做的伎俩,但我希望执行另一个脚本.

由于这是经常发生的一般情况下(init.py设置环境等是一样的,所有的时间),我会非常不喜欢引用init.pywork.py.怎么可以这样做?如果我需要从脚本而不是从提示中获取此内容,是否会发生任何变化?

非常感谢你.

C0d*_*ker 7

Python 有一个在启动时运行的特殊脚本。在我的平台上,它位于/usr/lib/python2.5/site-packages/sitecustomize.pyIIRC。因此,您可以将 init.py 与导入它的 sitecustomize.py 脚本一起放在该目录中,或者只是将 init.py 的内容粘贴到 sitecustomize.py 中。


gt6*_*89b 6

比C0deH4cker的公认答案更普遍,这在第2.2.5节 - Cusomization Modules的Python手册中讨论.基本思路是,为了获得特殊启动脚本的位置,需要执行以下Python代码,例如从解释器的交互式会话中执行:

>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.2/site-packages'
Run Code Online (Sandbox Code Playgroud)

输出应该是文件中的这个位置sitecustomize.py.

  • 运行 `python -m site`(适用于 Python 2 和 Python 3)显示此信息(查找以 `USER_SITE:` 开头的行)等等。对于`USER_BASE` 和`USER_SITE` 目录,它甚至会检查目录是否存在。 (2认同)