2015-04-07 18 views
2

这是对以下问题的更新,因为我发现在包含名为code.py的任何脚本的目录中启动bokeh_server时会发生同样的情况。为什么IPython在它开始的目录中执行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别名)。

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

编辑:好的:有问题的脚本是我/Users/xnx/temp/目录中名为code.py的文件。为什么IPython在启动它的shell之前执行这个文件?如果它包含从我的系统中删除文件的命令呢?其他人可以重现吗?它似乎并没有发生为Python 2

+0

还设置了其他的bash别名? – AGS

+0

没有记录......但看到我的编辑。 – xnx

+0

查找环境变量'PYTHON_STARTUP'(我认为)...在开始ipython之前打印'env' –

回答

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 import中正确的文件之前搜索文件code.py的当前工作目录。

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

相关问题