在 R 编程语言中,有一个 site.profile 文件,它定义了 R 进程在启动时执行的一些代码。Python中有类似的功能吗?
编辑:澄清一下,如果用户从命令行调用 python,而且 python 是从另一个进程生成的(例如,如果用户的脚本使用子进程生成另一个 python),则应该执行此脚本。
如果您只想在交互式会话中执行此操作(而不是每次使用python myscript.py或运行脚本./myscript或使用 运行模块时都发生这种情况python -m mymodule),那么您需要的是环境变量PYTHONSTARTUP:
\n\n如果这是可读文件的名称,则在以交互模式显示第一个提示之前执行该文件中的 Python 命令。该文件在执行交互式命令的同一名称空间中执行,以便可以在交互式会话中无需限定即可使用其中定义或导入的对象\xe2\x80\xa6
\n
当然,如果您希望这种情况永远发生,您需要在某个适当的全局位置 \xe2\x80\x94 例如,大多数 *nix 平台上的 shell 配置文件,或者您的 shell 配置文件和您的 shell 配置文件中设置此环境变量。 macOS 上的 launchd 配置文件,或 Windows 上控制面板的相应部分(几乎每个新版本的 Windows 中相应部分都会发生变化,但名称中通常包含“System”)。
\n如果您希望所有用户都发生这种情况,而不仅仅是当前用户\xe2\x80\xa6,则如何设置系统范围环境变量的详细信息更加特定于平台,但除此之外,想法是相同的。
\n如果您希望每个Python 会话都发生这种情况,即使其他程序正在运行 Python 脚本,而您甚至不知道它正在这样做\xe2\x80\xa6,您想要的是 或usercustomize,sitecustomize如文档中所述site文档:
\n\n该模块在初始化期间自动导入。可以使用解释器\xe2\x80\x99s -S 选项来抑制自动导入。
\n\xe2\x80\xa6
\n在这些路径操作之后,将尝试导入名为 的模块
\nsitecustomize,该模块可以执行任意特定于站点的自定义。它通常由系统管理员在site-packages目录中创建。此后,将尝试导入名为 的模块
\nusercustomize,如果为 true,则该模块可以执行任意特定于用户的自定义ENABLE_USER_SITE。该文件旨在在用户 site-packages 目录中创建(见下文),该目录是 sys.path 的一部分,除非被-s\xe2\x80\xa6禁用
所以,你想找到一个合适的地方来覆盖它。首先尝试这个:
\npython3 -m site\nRun Code Online (Sandbox Code Playgroud)\n然后,如果这没有给你sys.path(可能只在相当旧的Python上,但以防万一\xe2\x80\xa6),也这样做:
python3 -c "import sys; print(\'\\n\'.join(sys.path))"\nRun Code Online (Sandbox Code Playgroud)\n如果您希望仅对当前用户进行此自定义,则需要在列出的目录中创建一个usercustomize.py文件。如果该目录不存在,请创建它。USER_SITEpython3 -m site
如果您希望所有用户都发生这种情况,则需要sitecustomize.py在其中一个sys.path目录中放置一个文件。问题是可能已经有一个了。例如,大多数 Linux 发行版的内置 Python 包都有自己的sitecustomize模块。如果有,python3 -c \'import sitecustomize; print(sitecustomize.__file__)会告诉你它在哪里。sys.path然后,您可以编辑,也可以复制它,编辑该副本,然后将该副本放置在比原始版本更早的位置。作为一般规则,/usr/local可能比 更好/usr,并且site-packages可能比dist-packages可能比其他任何东西都好。
| 归档时间: |
|
| 查看次数: |
2670 次 |
| 最近记录: |