我希望能够在每次使用Python(2.6版本)时传递一些选项,而不仅仅是在交互模式下。是否有一个文件可以存储这样的命令?
编辑:具体来说,我想要消除Deprecation警告。
我希望能够在每次使用Python(2.6版本)时传递一些选项,而不仅仅是在交互模式下。是否有一个文件可以存储这样的命令?
编辑:具体来说,我想要消除Deprecation警告。
在Linux下,Python脚本开头的#!/usr/bin/python
行可以用于向解释器传递选项。
Python启动时还会导入许多模块。在我的系统上,修改以下候选模块以按其他帖子建议的方式设置选项:
/usr/lib/python2.6/site-packages/sitecustomize.py
import warnings
warnings.simplefilter("ignore", DeprecationWarning)
它会始终关闭所有的废弃警告,这可能不是您想要的。相反,您可以编写代码来检查自己的PYTHONNODEPRECATIONWARNING
环境变量,以便更好地控制。
在《Dive Into Python》中找到一个关于sitecustomize.py的参考资料和这个Python 2.6文档中对sitecustomize模块的引用后,我认为该文件是您所需要的最佳选择。在Python 2.6中,有了用户特定的站点包目录,您可以按用户的方式设置它,但您可能需要找到任何系统范围内的sitecustomize.py文件,要么将其复制到您的文件中,要么找到一种明确导入它的方法。
sitecustomize.py
没有被执行。 - Velkan大多数选项可以作为环境变量传递--输入python -h
查看列表:
$ py26 -h|grep PYTH
-B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-d : debug output from parser; also PYTHONDEBUG=x
-E : ignore PYTHON* environment variables (such as PYTHONPATH)
if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
-s : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-u : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x
-v : verbose (trace import statements); also PYTHONVERBOSE=x
PYTHONSTARTUP: file executed on interactive startup (no default)
PYTHONPATH : ':'-separated list of directories prefixed to the
PYTHONHOME : alternate <prefix> directory (or <prefix>:<exec_prefix>).
PYTHONCASEOK : ignore case in 'import' statements (Windows).
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
PYTHONINSPECT=x
相当于-i
(因为它出现在上一行,所以grep
切掉了这个信息;-)。很抱歉,我不完全明白你的问题是什么,但你可以尝试以下方法:
import warnings
warnings.simplefilter("ignore", DeprecationWarning)
所以,这可能并不真正回答问题。
你有尝试过~/.pythonrc.py
吗?在Python手册中有以下描述:
用户特定的初始化文件, 被用户模块加载;默认情况下大多数应用程序不使用它。
我不太确定它所谓的“用户”模块是什么意思,但我认为尝试一下是值得的。
编辑:看起来你需要在你的Python脚本中import user
,然后Python会在启动时自动执行这个 ~/.pythonrc.py 文件(不仅仅在交互模式下)。这适用于Python版本小于3.0。
http://docs.python.org/library/user.html