Idle中的KeyboardInterrupts 90%的时间都在为我工作,但我想知道他们为什么不总是工作.在空闲时,如果我这样做
import time
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
然后使用Ctrl + C尝试使用KeyboardInterrupt,直到睡眠10秒后才会中断该过程.
相同的代码和通过Ctrl + C的KeyboardInterrupt立即在shell中工作.
我最初使用的是python 2.7,它经常与操作系统捆绑在一起(目前使用的是Linux Mint 12).我想尝试python 3,所以我将它与python 2一起安装.一切都很好,我可以在终端中通过调用python或运行两个版本python3.但是,似乎没有办法用python 3启动IDLE.当我启动时,是否有一些标志可以传递给IDLE,以便我可以选择运行哪个版本的python?
例如,(这些不工作)
idle3或idle --shell=python3或类似的东西.希望你明白我的意思.我在这个问题中读到了关于ID3 for Python 3(在Vista上)的不同可执行文件.但是,我似乎无法在Linux上做类似的事情.
IDLE的子进程没有建立连接.IDLE无法启动子进程或个人防火墙软件阻止连接.
不要以为这会被问到 - 在运行非常简单的程序时偶尔会出现这种情况 - 然后我必须转到任务管理器并停止所有Pythonw进程以使其再次运行?
它似乎随机地发生在不同的代码位上 - 这是我现在正在做的那个 -
f = open('money.txt')
currentmoney = float(f.readline())
print(currentmoney, end='')
howmuch = (float(input('How much did you put in or take out?:')))
now = currentmoney + howmuch
print(now)
f.close()
f = open('money.txt', 'w')
f.write(str(now))
f.close()
Run Code Online (Sandbox Code Playgroud)
有时它有效,有时它不行!
在IDLE中,有没有办法直接运行PyUnit(unittest模块)单元测试?
我问,因为我有一个简短的测试模块,当我从Cygwin shell运行python mymodule.py时,我得到了所有测试,但是当我从IDLE使用Run-> Run Module时测试通过,但后来我得到一个异常( SystemExit:False).
例如,这是一个示例测试模块来重现这个:
#!/usr/bin/python
import unittest
class fooTests(unittest.TestCase):
def setUp(self):
self.foo = "bar"
def testDummyTest(self):
self.assertTrue(True)
def testDummyTestTwo(self):
self.assertEquals("foo", "foo")
def tearDown(self):
self.foo = None
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
当我使用python fooTests.py从Cygwin shell运行它时,它会产生:
$ python fooTests.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
Run Code Online (Sandbox Code Playgroud)
但是当我在IDLE中编辑fooTests.py并运行Run - > Run Module时,由IDLE生成的新Python Shell会产生:
>>> ================================ RESTART ================================
>>>
..
----------------------------------------------------------------------
Ran 2 tests in 0.031s
OK
Traceback (most recent call last):
File "C:\Some\path\info\I\shortened\fooTests.py", line 20, in <module>
unittest.main() …Run Code Online (Sandbox Code Playgroud) 解决了2013 年4月15日.在Windows 7(64位)Windows资源管理器中,当我右键单击一个Python文件并选择"使用IDLE编辑"时,编辑器正常打开但是当我运行(或f5)Python 3.3.1程序时,它失败了在"IDLE的子进程并没有使连接.空运转无法启动子进程或个人防火墙软件阻止了连接." 错误信息.启动IDLE以运行我的python 3.3.1程序的所有其他方法都运行良好.即使是"发送到"方法也能奏效,但这种做法令人无法接受.我花了四天时间(到目前为止)研究这个并尝试各种各样的事情,包括多次重新安装Python.不,这不是FireWall阻止它.我已经尝试完全关闭防火墙,它没有任何效果.
这是一个重要的线索:一开始我安装并配置了python 3.3 64位,一切正常,包括从"使用IDLE编辑"运行,但最近当我需要一个仅在Python 2中可用的库时,我安装了python 2.7.4并从那时起关于陈述的问题开始了.有一次,我完全删除了两个版本的所有痕迹,并重新安装了Python 3.3.1 64位.问题仍然存在
然后我尝试安装了32位版本,但仍然没有运气.然后在我的混乱的某些时候,我失去了"使用IDLE编辑"的选项,花了一天时间尝试所有内容,包括在Regedit中编辑.也没有运气.我重新安装Python 3.3.1仍然没有"使用IDLE编辑"然后最后我卸载了所有版本的Python,我删除了对环境变量PATH和PYTHONPATH的python引用.然后我删除了Windows注册表中所有与Python相关的键,删除了卸载没有删除的C:\ python33目录.当然,矫枉过正,然后我重新启动了Windows并再次安装了Python 3.3.1 64位版本,谢天谢地,"使用IDLE编辑"的选项又回来了.我瞬间高兴,我打开Windows资源管理器中,右键点击一个Python程序,选择RUN选择了"闲置编辑"(闭眼),你猜对了,同原来的错误消息 "IDLE的子进程并没有使连接.空运转能启动子进程或个人防火墙软件阻止连接."
我完全坚持这个问题,真的需要帮助.很确定你能看到我而不是一个快乐的露营者.最重要的是,我想我还不了解StackOverflow,我已经请求了5天的各种版本的帮助,而不是任何人的回应.相信我,我已经看过stackoverflow中的所有东西加上其他网站,我看不出答案.几乎似乎我必须回答我自己的问题并发布它,麻烦是,到目前为止我不能.
无论如何,谢谢你的倾听.是的,我对Python很陌生,但我已经编程并克服了多年的问题(也许太多了).任何人?没有亲自熟悉Python的人会让这很困难,我怎样才能与Python专家联系以进行快速的电话交谈?
使用Python,我必须:
Test_Image和Reference_image成5×5块, image1(1,1)with image2(1,1). 到目前为止,我已经使用计算了整个图像的直方图 hist=numpy.histogram(image,bins=256)
我想分割图像,然后计算所有这些块的直方图.我也想用Bhattacharya的系数来衡量相似性.
任何人都可以指导我如何通过这个?提前致谢 :)
python image-processing computer-vision python-idle python-2.7
我安装了随ArcGIS 10.2.2安装的Python 2.7.5.当我第一次右键单击我之前编写的.py脚本时,它在上下文菜单中列出了"使用IDLE编辑"选项.但是,当我右键单击.py文件时,不再显示此选项.
我已经阅读了很多关于这个问题的线程,并尝试了其中的一些,例如修改/删除注册表项,然后重新安装/修复软件.我现在对使用IDE不感兴趣,尽管很多人会很高兴知道我打算稍后使用IDE.现在,目的是解决问题,而不是避免和解决它.
我感谢我过去从在线社区获得的帮助,我相信有人会为我找到解决方案.
如何在上下文菜单中返回"使用IDLE编辑"?
我真的很讨厌问题,我只能通过双击来运行Python文件.
我试图将其设置为打开文件,idle.bat但只在双击时启动IDLE编辑器,它不会运行Python文件.
编辑:我刚刚发现使用标准库"curses"可以获得类似的行为.有一些关于它如何在这里和那里工作的演示,例如在YouTube上:http://www.youtube.com/watch?v = Bj- H9uPEa5U
我知道这是一个奇怪而愚蠢的问题,但我很好奇,因为我对python及其工作方式知之甚少.从终端或使用IDLE时,有没有办法在某个屏幕位置打印字符串?
我会试着更好地解释一下:你还记得曾经在Basic制作小程序的旧时代,也许是在Commodore 64,Apple II或ZX Spectrum上吗?那段时间,如果你想在某个位置打印一个字符串,你曾经写过这样的东西:
10 LOCATE 30,40:打印"你好世界"
我只是想知道是否有任何方法告诉python在某个位置打印一个字符串,如果有一种方法可以知道在IDLE窗口中可以实际显示多少列和多少行.
由于英语不是我的母语,我也做了一个模型抽奖,以便更好地解释这个概念:-)
谢谢.

我刚刚读到了关于'运算符'的意外结果,因为Python缓存数介于-5到256之间.
这里讨论了这个问题: "是"运算符在整数上出乎意料地行为
当我运行其中一个示例时,我在Python Idle和Python IDE之间得到了不同的结果(我正在使用Jetbrains Pycharm专业版 - 5.0.4).
使用Python IDLE时,结果如下:
a = 1000
b = 1000
print (a is b) # prints False
Run Code Online (Sandbox Code Playgroud)
当使用Pycharm 5.0.4时,这是结果:
a = 1000
b = 1000
print (a is b) # prints True
Run Code Online (Sandbox Code Playgroud)
怎么会这样?我已经重新检查了,我的项目的Python-Interpreter在两种情况下完全相同(都是Python 3.5.1).不确定这是否是我做错了,我希望有人能解释一下.
编辑:
我知道'a'是'b'== true if if id(a)== id(b),并且您可以像评论中提到的那样检查它.也许我应该更清楚,我不明白的是IDE怎么会有不同的行为?我想(并请,请纠正我,因为我似乎错了)IDE只是一个使用外部编译器/解释器的用户友好环境,这就是为什么这些独立于那些IDE(例如,pycharm支持)不仅是Python,而且我可以使用C编译器或Java等运行Eclipse(所有这些都不是IDE的一部分).
谢谢,Alon.
python-idle ×10
python ×9
python-3.x ×3
python-2.7 ×2
batch-file ×1
contextmenu ×1
edit ×1
integer ×1
pycharm ×1
python-3.2 ×1
unit-testing ×1