有许多网站都有关于安装 ropemacs的说明,但到目前为止,我找不到任何有关如何在安装后使用它的说明.我安装了它,或者至少看起来如此,Emacs的顶部菜单栏中有"Rope"菜单.怎么办?到目前为止,我只能使用"显示文档"(默认为Cc d).尝试使用代码辅助(自动完成,我猜?)只会导致Emacs在迷你缓冲区中询问"绳索项目根文件夹"(那是什么?)然后什么都没有显示.
因此,一旦安装了ropemacs,在一些简单的python脚本上看到它的操作步骤是什么?喜欢的东西"如果你在你的Emacs这个脚本,把闪烁的广场这里,按下此,它确实是 "将是一个答案.
(我一直在想我是否应该问一下这个问题,因为似乎没有其他人有同样的问题)
Notepad ++有一个方便的功能:如果您在文本中选择一个单词(不一定是关键字),则该单词会在整个文本中突出显示.这可以在Emacs中完成吗?如果是这样,怎么样?
它不一定非常像Notepad ++(即通过选择); 理想情况下,我想设置一个键绑定,使所有出现的光标下的单词都突出显示.
如果高光是永久的,即远离突出显示的单词的移动点不应该导致高光被移除,那将是很好的.
此外,如果有一个解决方案可以在高亮显示之间导航(使用自定义键绑定),那将非常有用.
当我使用鼠标滚轮滚动Emacs时,它一次滚动5行,我认为这太过分了 - 我在哪里设置新值?
此外,当我使用鼠标(滚轮或滚动条)滚动Emacs时,光标会跳转到可见屏幕区域内 - 有没有办法覆盖该行为,使其保持在它所在的线上,即使它走出屏幕?换句话说,我不希望滚动显示新键入符号的位置.
关于如何查看代码的一些远程部分然后快速返回到前一个位置的任何替代建议也是受欢迎的.
假设我们有一个多边形坐标为polygon = [(x1,y1),(x2,y2),...],下面的代码显示了多边形:
import matplotlib.pyplot as plt
plt.fill(*zip(*polygon))
plt.show()
Run Code Online (Sandbox Code Playgroud)
默认情况下,它会尝试调整宽高比,以便多边形(或任何其他图表)适合窗口内部,并自动更改它,以便即使在调整大小后也适合.在许多情况下这是很好的,除非你试图在视觉上估计图像是否扭曲.如何将纵横比严格控制为1:1?
(不确定"宽高比"在这里是否是正确的术语,所以如果不是 - 我需要X和Y轴都具有1:1比例,因此X和Y上的(0,1)都需要精确相同数量的屏幕空间.无论我如何调整窗口大小,我都需要保持1:1的比例.)
假设我们有一个列表:
a = [4, 8, 1, 7, 3, 0, 5, 2, 6, 9]
Run Code Online (Sandbox Code Playgroud)
现在,a.sort()将对列表进行排序.如果我们只想对列表的一部分进行排序,仍然存在,该怎么办?在C++中我们可以写:
int array = { 4, 8, 1, 7, 3, 0, 5, 2, 6, 9 };
int * ptr = array;
std::sort( ptr + 1, ptr + 4 );
Run Code Online (Sandbox Code Playgroud)
Python中有类似的方法吗?
是否有Lisp的本机代码编译器?它甚至可以编译到哪个程度,具有动态特性,垃圾收集,宏以及其他什么?
例如,我可以使用python setup.py build --compiler=msvc或者python setup.py build --compiler=mingw32仅使用python setup.py build,在这种情况下将使用默认编译器(例如bcpp).如何在setup.py中获取编译器名称(例如msvc,mingw32和bcpp,分别)?
UPD.:我不需要默认的编译器,我需要实际使用的那个,这不一定是默认的.到目前为止,我还没有找到比解析更好的方法sys.argv来查看那里是否有--compiler...字符串.
将South添加到现有的Django项目中.我把它安装在开发机器和"生产"服务器上.
我在开发机器上完成了以下操作,然后:将南方应用程序添加到settings.py,
python manage.py syncdb
python manage.py convert_to_south myproject.myapp
Run Code Online (Sandbox Code Playgroud)
然后改变了一些模型
python manage.py schemamigration myproject.myapp --auto
python manage.py migrate myproject.myapp
Run Code Online (Sandbox Code Playgroud)
到目前为止似乎工作.我现在不太确定的是在生产服务器上做什么.只需手动重复所有这些步骤?上传修改后的settings.py,执行syncdb,convert_to_south,上传修改过的models.py,做schemamigration,迁移?有些不同?这里的教程说明了如何将迁移添加到版本控制中,因此,大概应该将它们上传并以某种方式应用于生产服务器上?
此外,现在我在开发机器上使用sqlite3,在服务器上使用mysql - 它是不是在南方做任何不同的事情?
还是有吗?
从桌面软件开发人员的角度来看(或许与Web开发人员相反),富Web应用程序平台(如Flash或Silverlight)看起来像是为Web做WYSIWYG文本编辑器的更好工具.它们具有更复杂的输入/输出,数据表示等,并且它们在浏览器和平台上是一致的(好吧,可能还没有Silverlight和Moonlight,但至少Flash似乎是这样).
尽管如此,开发人员仍然倾向于使用Javascript/DOM/HTML/CSS与他们的所有不兼容性,差异,努力工作以解决每个特定的怪癖,并使用大量的黑客来使这些技术做到他们原来的,也许,从来没有应该是能够做到的.
有一些普遍接受的论点,为什么你不应该使用Flash作为一个网站,以及一个普遍接受的例外:嵌入式视频播放器.富文本编辑器有何不同?"一个闪存控件存在于它隔离的沙箱中" - 所以,普遍来说,是一个WYSIWYG编辑器; "闪存控制的文本无法被搜索引擎索引" - 无论如何,谁关心索引编辑器中不断变化的未保存内容; "并非所有用户都可能安装了Flash" - 因此并非所有用户都可能启用了Javascript.
所以,问题在于:选择Javascript over Flash实现WYSIWYG编辑器有什么好处?否则选择会有什么不利之处?
我想执行一些Python代码,在运行时输入,所以我得到字符串并调用
exec(pp,globals(),locals())
其中pp是字符串.除了递归调用之外,它工作正常,例如,这段代码没问题:
def horse():
robot.step()
robot.step()
robot.turn(-1)
robot.step()
while True:
horse()
Run Code Online (Sandbox Code Playgroud)
但这个不是:
def horse():
robot.step()
robot.step()
robot.turn(-1)
robot.step()
horse()
horse()
Run Code Online (Sandbox Code Playgroud)
NameError:未定义全局名称"horse"
有没有办法运行递归代码?
UPDATE
a = """\
def rec(n):
if n > 10:
return
print n
return rec(n+1)
rec(5)"""
exec(a)
Run Code Online (Sandbox Code Playgroud)
如果放在顶层,可以工作.但如果在函数内部移动:
def fn1():
a = """\
def rec(n):
if n > 10:
return
print n
return rec(n+1)
rec(5)"""
exec(a)
fn1()
Run Code Online (Sandbox Code Playgroud)
发生相同的错误:NameError:未定义全局名称'rec'
我正在尝试编写一个程序来说明"河内塔"拼图的程序化解决方案,其中磁盘由绝对定位的不同大小的div表示.要采取行动我有这样的功能:
function move(peg_from, peg_to)
{
//check if the move is valid
//update the game state
//......
//get the div we are moving, calculate it's new position
//move:
the_div.animate({left: new_left, top: new_top}, 500);
}
Run Code Online (Sandbox Code Playgroud)
然后解决方案可能如下所示:
move(1, 3);
move(1, 2);
move(3, 2);
//... etc...
Run Code Online (Sandbox Code Playgroud)
或者递归,或者其他什么.在任何情况下,我希望能够"评估"任何代码,根据move(x,y)定义,而不是jQuery的动画或回调函数.问题是,所有动画都会立即发生,而它需要处于调用顺序中.有没有办法做到这一点?
我已经尝试将.delay()添加到动画中,也许它可以工作,但无论如何我无法弄清楚正确的超时.setTimeout()没有任何可见效果.谷歌搜索显示使用动画回调的一些建议,但我不认为它们适用于我的情况.
我想在加载所有需要的图像时调用一个函数.图像的数量是预先知道的,所以我尝试将函数调用附加到每个图像的onload事件并计算它被调用的次数.
<html>
<head>
<script>
var tractor;
function Tractor()
{
this.init_graphics();
}
Tractor.prototype.init_graphics = function()
{
this.gr_max = 3;
this.load_count = 0;
this.loading_complete(); // #1 test call, works OK
this.img1 = new Image();
this.img1.onload = this.loading_complete; // #2 gets called, but gr_max = undefined, load_count = NaN
this.img1.src = "http://dl.dropbox.com/u/217824/tmp/rearwheel.gif"; //just a test image
}
Tractor.prototype.loading_complete = function()
{
this.load_count += 1;
alert("this.loading_complete, load_count = " + this.load_count + ", gr_max = " + this.gr_max);
if(this.load_count >= this.gr_max) {this.proceed();}
};
function …Run Code Online (Sandbox Code Playgroud) 对于放射线扫描,我已经能够获得轮廓。
我有兴趣找到中心轴。我怎么能在python中做到这一点?
这是我的轮廓代码:
import cv2
img = cv2.imread("A.png")
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(img,60,200)
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
hierarchy = hierarchy[0]
cv2.drawContours(img, contours, -1, (255,0,0), 3)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud) python ×6
emacs ×3
autocomplete ×1
distutils ×1
django ×1
django-south ×1
exec ×1
flash ×1
highlighting ×1
html5 ×1
ide ×1
in-place ×1
installation ×1
javascript ×1
jquery ×1
lisp ×1
matplotlib ×1
migration ×1
mouse ×1
object ×1
onload ×1
opencv ×1
prototype ×1
recursion ×1
richtext ×1
scroll ×1
silverlight ×1
sorting ×1
wysiwyg ×1
x-ray ×1