为什么IPython在它开始的目录中执行code.py?

时间:2015-04-07 20:02:08

标签: python python-3.x ipython

这是对以下问题的更新,因为我发现当我在包含任何名为bokeh_server的脚本的目录中启动code.py时会发生同样的事情。

我有一个目录,/Users/xnx/temp/包含许多(大多是一次性的)文件,包括各种脚本。当我从Anaconda py33虚拟环境中的命令启动IPython时,似乎在将我放入IPython shell之前运行其中一个脚本,因为我得到了一个数字及其立方体输出到屏幕之前的列表IPython显示其提示:

Xnx-Mac:temp xnx$ py33
discarding /Users/xnx/anaconda/bin from PATH
prepending /Users/xnx/anaconda/envs/py33/bin to PATH
(py33)Xnx-Mac:temp xnx$ ipython
0
0
1
1
2
8
...
99
970299
Python 3.3.5 |Anaconda 2.0.1 (x86_64)| (default, Sep  2 2014, 13:57:31) 
Type "copyright", "credits" or "license" for more information.

IPython 2.3.0 -- An enhanced Interactive Python.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 

py33只是source activate py33)的bash别名。

这似乎没有造成任何伤害,但我想知道它为什么会发生。有什么想法吗?

编辑:确定:违规脚本是我code.py目录中名为/Users/xnx/temp/的文件。为什么IPython在启动它之前执行这个文件?如果它包含从我的系统中删除文件的命令怎么办?其他人可以重现这个吗?它似乎不适用于Python 2。

1 个答案:

答案 0 :(得分:2)

好吧,来自chat.stackoverflow.com的一些(很多)help,我已经找到了问题: 我的~/.bash_profile文件包含

export PYTHONPATH="/Users/xnx/research/python_modules:$PYTHONPATH"

将环境变量PYTHONPATH设置为/Users/xnx/research/python_modules:,因为先前未定义$PYTHONPATH。尾部冒号导致''被添加到sys.path,并且当前工作目录在启动时在IPython code.py中的正确文件之前搜索文件import

获得的经验教训:不要让$PYTHONPATH有一个尾随冒号。