这是对以下问题的更新,因为我发现当我在包含任何名为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。
答案 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
有一个尾随冒号。