我想每次都将一些选项传递给Python(版本2.6),而不仅仅是在交互模式下。有没有我可以输入这些命令的文件?
编辑:具体来说,我想要贬低弃用警告。
答案 0 :(得分:6)
Linux下Python脚本开头的#!/usr/bin/python
行也可用于将选项传递给解释器。
每当Python启动时,还会导入许多模块。在我的系统上,可能会以其他海报建议的方式修改设置选项的候选人在这里:
/usr/lib/python2.6/site-packages/sitecustomize.py
如果您只是将此代码放在该文件中:
import warnings
warnings.simplefilter("ignore", DeprecationWarning)
它会关闭所有内容的弃用警告,这可能不是您想要的。您可以使用代码来检查您自己的PYTHONNODEPRECATIONWARNING
环境变量,以便您拥有更多控制权。
在finding a reference to sitecustomize.py in Dive Into Python和reference to the sitecustomize module in the Python 2.6 documentation之后,我认为该文件是您想要的最佳选择。在Python 2.6中,通过其用户特定的site-packages目录,可以基于每个用户进行设置,但您可能希望找到任何系统范围的sitecustomize.py文件,并将其复制到您的文件中或找到一种方法明确地将它导入你的。
答案 1 :(得分:3)
大多数选项都可以作为环境变量传递 - 执行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.
您是否担心无法通过环境变量设置的其他标志?
PS PYTHONINSPECT=x
相当于-i
(grep
剪切该信息,因为它出现在上一行行; - )。
答案 2 :(得分:1)
对不起,我不太确切地知道你的问题是什么,但是,你可能会尝试:
import warnings
warnings.simplefilter("ignore", DeprecationWarning)
所以,这可能不会真正回答这个问题。
答案 3 :(得分:0)
您是否尝试过~/.pythonrc.py?
它在Python手册页中列出,其中包含以下说明:
用户特定的初始化文件 由用户模块加载;没用过 默认或大多数应用程序。
我不确定“用户”模块意味着什么,但我认为值得尝试一下。
编辑:看起来你的python脚本中必须有import user
,然后Python会在启动时自动执行这个〜/ .pythonrc.py文件(而不仅仅是在交互模式下)。这应该适用于Python版本&lt; 3.0。
http://docs.python.org/library/user.html