我两天前更换为Emacs 23,最近给了我很多头疼,特别是因为我安装了两个Python版本,旧的2.7和3.因为我一般都想启动python 3解释器,如果我可以用某种方式告诉Emacs使用python 3而不是2.7.
此外,我找不到一个有助于突出python3语法的模块.我目前正在使用python-mode.el进行突出显示.
此外,如果某人有一个很好的提示,哪个模块最好显示pydoc,我会非常感激.
提前致谢!
我已经在网上寻找答案了很长一段时间,但这让我很头疼:
我正在使用Ubuntu 12.04,我想从终端执行Python脚本而不使用完整路径.所以我通过将以下内容添加到./bashrc中将/ home/kyril/python/scripts /添加到PATH变量:
kyrilpathvariable="/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kyril/Python/scripts/:/home/kyril/Bash/scripts"
if [ "$kyrilpathvariable" = "$PATH" ]; then
echo PATH already exported
else
PATH=$PATH:/home/kyril/Python/scripts/
PATH=$PATH:/home/kyril/Bash/scripts/
export PATH
fi
Run Code Online (Sandbox Code Playgroud)
(我知道if子句不是必需的,但如果我输入exec bash,我不想在我的PATH中有两次.)
现在的问题是:这完全适用于我的Bash脚本,所以在通过chmod使它们可执行后我可以输入$ script.sh并执行它.但是,如果我键入$ python3 script.py以下错误引发:python3: can't open file 'script.py': [Errno 2] No such file or directory
如果我输入脚本的完整路径,它的工作原理.有谁知道我做错了什么?我是否必须将目录添加到PYTHONPATH?(据我所知,这只对导入模块有帮助).
多谢你们!
对不起,如果这是一个愚蠢的问题,但我无法理解它是如何工作的.
我定义了一个具有类似结构的迭代器(它有点复杂,但模型可以完成这项工作):
class MyIterator ():
def __init__(self):
print ('nothing happening here')
def __iter__ (self):
self.a_list=[x for x in range (10)]
for y in a_list:
print(y)
def __next__ (self):
self.a_list = [x+1 for x in self.a_list]
for y in a_list:
print (y)
Run Code Online (Sandbox Code Playgroud)
但是我怎么能循环呢?我是否总是需要手动调用方法?或者我只是使用错误的工具?