【发布时间】:2023-03-09 04:43:01
【问题描述】:
背景:大约一年前我开始使用 OSX,我安装了一种奇怪的 Python。也就是说,我正在使用系统 python,并使用 sudo 安装软件包,这似乎可以使事情正常进行。现在,我从全新的 OSX 安装开始,并尝试以正确的方式进行安装。我已经从 brew 安装了 python 和 python3,并尽可能尝试使用 python3。
问题:我有一个 .pythonrc 文件,它只导入了一些常用的包 - 主要是标准库、一些流行的非标准包和我自己的一些。过去,这个文件只在我启动交互式 shell 时运行。现在,当使用 brew python 时,它会在我运行任何 python 程序时运行。
我对 rc 文件的理解肯定有一些差距——我认为目的是专门用于交互式使用的。尽管如此,当我使用系统 python 时,并没有使用 rc 文件 - 所以我的系统 python(/usr/bin/python 上的 2.7.10)与 brew python(/usr/local/bin 上的 2.7.12)有些不同/python; 3.5.2 在 /usr/local/bin/python3)。如果我从 rc 文件中删除除打印语句之外的所有内容,则行为是相同的。
编辑:我意识到 rc 文件正在运行,因为我正在导入 ipdb。我想这是有道理的,但我仍然不明白为什么在某些 python 环境/版本中会发生这种情况,而在其他环境/版本中不会发生。
编辑:https://github.com/gotcha/ipdb/blob/master/ipdb/main.py#L44 这一行失败,不确定这是否意味着什么。
.pythonrc 中的完整堆栈跟踪:
File "hello.py", line 1, in <module>
from ipdb import set_trace
File "/usr/local/lib/python2.7/site-packages/ipdb/__init__.py", line 7, in <module>
from ipdb.__main__ import set_trace, post_mortem, pm, run # noqa
File "/usr/local/lib/python2.7/site-packages/ipdb/__main__.py", line 51, in <module>
ipapp.initialize([])
File "<decorator-gen-109>", line 2, in initialize
File "/usr/local/lib/python2.7/site-packages/traitlets/config/application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 315, in initialize
self.init_code()
File "/usr/local/lib/python2.7/site-packages/IPython/core/shellapp.py", line 263, in init_code
self._run_startup_files()
File "/usr/local/lib/python2.7/site-packages/IPython/core/shellapp.py", line 342, in _run_startup_files
self._exec_file(python_startup)
File "/usr/local/lib/python2.7/site-packages/IPython/core/shellapp.py", line 328, in _exec_file
raise_exceptions=True)
File "/usr/local/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2469, in safe_execfile
self.compile if kw['shell_futures'] else None)
File "/usr/local/lib/python2.7/site-packages/IPython/utils/py3compat.py", line 288, in execfile
builtin_mod.execfile(filename, *where)
File "~/.pythonrc", line 57, in <module>
import traceback; traceback.print_stack()
【问题讨论】:
标签: python macos ipython homebrew