我在Eclipse中使用PyDev作为我的Python编辑器.它在功能集方面很好.一切都很好,除了一个非常烦人的事情:
代码完成本身很快.当我按下Alt + Space时,窗口几乎立即弹出,所有选项都在那里.选中顶部的选项.然后麻烦了.详细描述直到约5-10秒才出现.所有这些时间CPU都在最大负载下工作,并且接口没有响应.所有处理器都被Eclipse Java进程占用(生成的Python进程似乎空闲).然后弹出一个黄色窗口,它包含的只是所选函数/变量的Python代码.所有连续细节都会立即显示.当我关闭完成窗口时(例如,通过接受其中一个选项并再次要求完成),该过程重复进行.这让我发疯了.
我到目前为止尝试过:
我使用的版本是Eclipse Helios,因为我上次检查某些扩展时尚未移植到最新版本.
有没有人观察过类似的问题?有人能绕过它吗?有关如何调试它并提交合理的错误报告的一般想法可能吗?其他值得检查的东西.
任何解决方法都不如完全关闭完成?
谢谢!
编辑:
我也注意到HTML/CSS编辑器中类似弹出窗口的问题.它看起来有点相似(一个黄色的窗口,里面有一些文字),它也需要很长时间才能显示出来.不知道这是否相关,但可能是.
EDIT(2):
好吧,不,我已经开始全新安装最新的Eclipse Indigo,除了PyDev之外没有任何额外的插件,问题仍然存在.好像我必须寻找新的IDE.
我想问你在Python中开发facebook应用程序的经验.您认为哪种流行的Web语言框架最适合此目的?我知道"最好"是一个非常主观的词,所以我特别感兴趣的是:
我不是Python的新手,但对于Python中的Web开发来说肯定是新手.虽然在Grails的经历及其曲折之后我怀疑Python真的可以吓到我.
是否有任何简单的方法/库/外部应用程序将工作单元概念引入Django ORM?您使用什么方法或技术来解决在复杂模型设置中导入同一行两次而不会失去所有模块性的问题?
编辑
例
考虑以下的示例性情况 - 有Location一个与自身有关系的模型,称为通过其他模型的路径Route.现在让我们说每个Route都有称为:( entry_fare进入路线需要支付exit_fare的金额)和(在另一端退出路线需要支付的金额).现在让我们假设你要实现一个增强entry_fares和扩充的动作exit_fares.您还希望能够计算给定城市的票价总和.您可能希望在单个事务中执行一系列此类操作.读取(计算总和)比写入(增加票价)更频繁.
在一个简单的实现中,每次要计算总和时,您需要加载一组新的模型 - 以确保没有过时的数据.此外,扩充将每次在一组新模型上运行,并且在增加票价之后立即保存实例以确保来自数据库的进一步提取包括新票价值.
请记住,这只是作为一个例子.
我目前正在编写一个项目,我大量使用ListTmonad变换器.使用普通列表时,实现非确定性很容易.但是,一旦我必须将我的代码转换为ListT,它就会变得更加复杂1.
举个简单的例子:转换[a]为ListT a实际需要组成两个函数:
conv :: (Monad m) => [a] -> ListT m a
conv = ListT . return
Run Code Online (Sandbox Code Playgroud)
虽然很简单,但我很惊讶它还没有出现.
问题:
ListT?1确切的原因非常复杂,所以我真的不想详细说明.
我abc在 Amazon RDS 上的 PostgreSQL 数据库上有一个用户。据我所知,该用户是超级用户:
=> grant rds_superuser to abc;
NOTICE: role "abc" is already a member of role "rds_superuser" GRANT ROLE
Run Code Online (Sandbox Code Playgroud)
我尝试终止一些交易,但是我得到:
=> select pg_terminate_backend(pid) from pg_stat_activity;
ERROR: must be superuser or have the same role to terminate other server processes
Run Code Online (Sandbox Code Playgroud)
我广泛搜索了 Amazon RDS 文档,但仍然不明白。我哪里出错了?
我有一个以下代码片段:
def isolation_level(level):
def decorator(fn):
def recur(level, *args, **kwargs):
if connection.inside_block:
if connection.isolation_level < level:
raise IsolationLevelError(connection)
else:
fn(*args, **kwargs)
else:
connection.enter_block()
try:
connection.set_isolation_level(level)
fn(*args, **kwargs)
connection.commit()
except IsolationLevelError, e:
connection.rollback()
recur(e.level, *args, **kwargs)
finally:
connection.leave_block()
def newfn(*args, **kwargs):
if level is None: # <<<< ERROR MESSAGE HERE, Unbound local variable `level`
if len(args):
if hasattr(args[0], 'isolation_level'):
level = args[0].isolation_level
elif kwargs.has_key('self'):
if hasattr(kwargs['self'], 'isolation_level'):
level = kwargs.pop('self', 1)
if connection.is_dirty():
connection.commit()
recur(level, *args, **kwargs)
return newfn
return decorator
Run Code Online (Sandbox Code Playgroud)
它的作用并不重要,但是我将它以原始形式发布,因为我无法用更简单的方式重新创建这种情况. …
进行时:
git merge some-branch
Run Code Online (Sandbox Code Playgroud)
我懂了
BUG: There are unmerged index entries:
BUG: 3 docfatal: Bug in merge-recursive.c
Run Code Online (Sandbox Code Playgroud)
不知道这意味着什么,但是看起来比通常情况更令人意外。我应该怎么办?有一些清理命令可以帮助我吗?
编辑
更糟糕的是,此错误实际上是在我的源代码之一中传播的。正如some-branch最初只是我的本地工作一样,我将其推送到远程服务器上。然后克隆一个新的存储库,并尝试将上述分支合并到此副本上,并得到相同的消息。
编辑2
我使用GIT_MERGE_VERBOSITY = 5并得到:
$> export GIT_MERGE_VERBOSITY=5; git merge origin/funkload
Merging:
a1ef5a2 Uaktualniony INSTALL.
virtual origin/funkload
found 2 common ancestor(s):
d2eb442 Resources py.
119871b Nowy commit w doc.
Merging:
d2eb442 Resources py.
119871b Nowy commit w doc.
found 1 common ancestor(s):
62f4183 Poprawiony bug w obs?udze linków do resources, które s? null.
Removing doc/concept/agreement.lyx
Removing doc/concept/agreement.pdf
Removing doc/concept/concept.lyx …Run Code Online (Sandbox Code Playgroud) 是的,我知道这UndecidableInstances可能很糟糕.我真的很努力地设计我的模块,所以它不需要它但是我有这样的东西:
instance Foo x (C x y) => Bar (C x y) where
...
Run Code Online (Sandbox Code Playgroud)
并且改变它会使API变得更加丑陋.我从来没有推出过Foo,Bar所以没有办法做出循环.
另一方面,UndecidableInstances使得愚蠢的错误容易被忽视.例如,我可以写错误的东西:
instance Foo x (C x z) => Bar (C x y) where
...
Run Code Online (Sandbox Code Playgroud)
在那里z从来没有在右侧出现.
问题:是否可以UndecidableInstances在模块中本地使用,即明确标记解除通常终止规则的位置?
当然它对终止没有帮助,但它会让决定更加明智地使用这个扩展.
问题2:是否有一些弱于此的东西UndecidableInstances仍然不能保证终止,但会禁止更多的边界线情况,如第二个代码片段?
我有一段代码,在列表monad中,应用了一个函数.函数可能潜在地为其参数进行非详尽的模式匹配.因此,当应用该函数时,我可能会收到"Non-exhaustive pattern matching"错误.我想将此错误转换为monadic失败(在这种情况下,为空列表).换句话说,我想得到一个类似的行为,当Some Pattern Here <- some value一个do块内部失败时会发生什么 .
问题:是否有一种有效的方法使功能应用程序安全?通过有效,我的意思是类似于使应用的功能完全匹配并明确失败.
monads haskell functional-programming exception-handling exception
我正在使用Pyramid 1.4.我想从我的模型类中生成一些自定义Pyramid事件.事件生成如下:
request.registry.notify(MyCustomEventType("Here it comes"))
Run Code Online (Sandbox Code Playgroud)
如您所见,我需要访问应用程序注册表.我知道get_current_registry()功能.但我也很关注Pyramid网站上的评论:
"这个功能应该非常谨慎地使用,通常只在单元测试代码中使用"
问题:
Base或许扩展模型?)理由:
基本上,我将我的应用程序划分为功能,并尝试将它们分离.为此,我有时需要IoC:我计划将事件作为一种手段.例如,每当用户回答问题时,都会发出事件.然后,可以在应用程序的其他部分订阅这样的事件.我喜欢将应用程序逻辑保留在模型中而不是视图中.因此,所描述的问题.
python ×4
haskell ×3
exception ×2
monads ×2
amazon-rds ×1
autocomplete ×1
bug-tracking ×1
debugging ×1
django ×1
django-orm ×1
eclipse ×1
events ×1
facebook ×1
fatal-error ×1
function ×1
ghc ×1
git ×1
hang ×1
list ×1
merge ×1
orm ×1
performance ×1
permissions ×1
postgresql ×1
pyramid ×1
rdbms ×1
sqlalchemy ×1
termination ×1
thread-local ×1
type-systems ×1
typeclass ×1