我在XP上使用python 2.6.我刚刚安装了py2exe,我可以从hello.py成功创建一个简单的hello.exe.但是,当我尝试在我的真实程序中使用py2exe时,py2exe会产生一些信息消息,但无法在dist文件夹中生成任何内容.
我的setup.py看起来像这样:
from distutils.core import setup
import py2exe
setup(console=['ServerManager.py'])
Run Code Online (Sandbox Code Playgroud)
并且py2exe输出如下所示:
python setup.py py2exe
running py2exe
creating C:\DevSource\Scripts\ServerManager\build
creating C:\DevSource\Scripts\ServerManager\build\bdist.win32
...
...
creating C:\DevSource\Scripts\ServerManager\dist
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'wx._misc_' (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_misc_.pyd -> wx._misc_.pyd)
creating python loader for extension 'lxml.etree' (C:\Python26\lib\site-packages\lxml\etree.pyd -> lxml.etree.pyd)
...
...
creating python loader for extension 'bz2' (C:\Python26\DLLs\bz2.pyd -> bz2.pyd)
*** finding dlls needed ***
Run Code Online (Sandbox Code Playgroud)
py2exe似乎找到了我的所有导入(虽然我有点惊讶看到win32提到,因为我没有明确导入它).此外,我的程序使用此命令非常愉快地启动:
python ServerManager.py
Run Code Online (Sandbox Code Playgroud)
显然我正在做一些根本错误的事情,但是在没有来自py2exe的任何错误消息的情况下我不知道是什么.
我最近开始在Scala编程.我正在寻找一个免费的Scala分析器.从该语言的官方网站阅读带我到YourKit,但该程序不是免费的.
谷歌搜索"scala profiler"没有给我任何相关的结果.
那么如何描述用Scala编写的程序呢?我更喜欢Netbeans或Eclipse的图形插件.但如果没有这样的东西,那么一个控制台就可以了.
谢谢 :)
在阅读Git命令的手册页时,您经常会看到一个可选的--(破折号).根据我的经验,这--不是必要的,没有任何区别.你什么时候需要它?一般来说它是什么意思,因为它出现在如此众多的命令中?
考虑到https://speakerdeck.com/folone/theres-a-prolog-in-your-scala,我想"滥用"Scala类型系统来查找CanBuildFrom符合给定条件的所有实例.Prolog风格,我会评估以下伪代码的行:
can_build_from(Src, int, list[int])
Src = somecollectiontype1[int]
Src = somecollectiontype2[int]
... etc
Run Code Online (Sandbox Code Playgroud)
即运行时将查找Src满足该语句的所有值can_build_from(Src, int, list[int]).
现在,我知道,原始的约束/逻辑编程环境,斯卡拉隐含查询系统,并不意味着使用这种技巧,并且不能用于"重返"不止一个发现价值Src出来的箱,所以我的问题是:是否有一个"魔术",使其工作,所以无论如何我会得到所有可能的值X的CanBuildFrom[X, Int, List[Int]]?
附加示例:
trait CanFoo[T, U]
implicit val canFooIntString = new CanFoo[Int, String] {}
implicit val canFooDblString = new CanFoo[Double, String] {}
implicit val canFooBoolString = new CanFoo[Boolean, String] {}
implicit val canFooIntSym = new CanFoo[Int, Symbol] {}
implicit val canFooDblSym = new CanFoo[Double, Symbol] {}
implicit val canFooBoolSym = …Run Code Online (Sandbox Code Playgroud) scala logic-programming constraint-programming type-level-computation shapeless
我正在开发一个项目,除其他外,涉及数据库访问层.非常正常,真的.在之前的项目中,合作者鼓励我将Free Monads概念用于数据库层,所以我做到了.现在,我正在尝试在我的新项目中决定我获得了什么.
在之前的项目中,我有一个看似相似的API.
saveDocument :: RawDocument -> DBAction ()
getDocuments :: DocumentFilter -> DBAction [RawDocument]
getDocumentStats :: DBAction [(DocId, DocumentStats)]
Run Code Online (Sandbox Code Playgroud)
大约二十个这样的公共职能.为了支持它们,我有了DBAction数据结构:
data DBAction a =
SaveDocument RawDocument (DBAction a)
| GetDocuments DocumentFilter ([RawDocument] -> DBAction a)
| GetDocumentStats ([(DocId, DocumentStats)] -> DBAction a)
| Return a
Run Code Online (Sandbox Code Playgroud)
然后是monad实现:
instance Monad DBAction where
return = Return
SaveDocument doc k >>= f = SaveDocument doc (k >>= f)
GetDocuments df k >>= f = GetDocuments df (k >=> f)
Run Code Online (Sandbox Code Playgroud)
然后是口译员.然后是实现每个不同查询的原始函数.基本上,我觉得我有大量的胶水代码.
在我当前的项目中(在一个完全不同的领域),我已经为我的数据库添加了一个非常普通的monad: …
我知道monad是什么以及如何使用它们.我不明白的是,是什么让Option一个单子?
在Haskell中,monad Maybe是一个monad,因为它是从Monad类中实例化的(它具有至少2个必要的函数return,bind并且实现了类Monad,实际上是monad).
但是在Scala我们有这个:
sealed abstract class Option[+A] extends Product with Serializable { ... }
trait Product extends Any with Equals { ... }
Run Code Online (Sandbox Code Playgroud)
没有任何与monad相关的东西.
如果我在Scala中创建自己的类,默认情况下它是monad吗?为什么不?
让我在这篇文章前面加上一点谨慎.在Java方面,我是一个初学者.我已经开启和关闭了PHP一段时间,但我已经准备好制作一个桌面应用程序,所以我决定使用Java,原因有很多.
我正在处理的应用程序处于开始阶段(少于5个类),我需要从本地文件中读取字节.通常,文件目前小于512kB(但将来可能会变大).目前,我使用a FileInputStream将文件读入三个字节数组,完全满足我的要求.但是,我已经看到了一个BufferedInputStream提到的,并且想知道我目前这样做的方式是最好的,还是我应该使用一个BufferedInputStream.
我做了一些研究,并在Stack Overflow上阅读了一些问题,但是我仍然遇到麻烦,了解何时使用而不使用的最佳情况BufferedInputStream.在我的情况下,我读取字节的第一个数组只有几个字节(小于20).如果我收到的数据在这些字节中是好的,那么我将文件的其余部分读入另外两个不同大小的字节数组.
我也听过很多人提到分析,看看哪个在每个特定情况下哪个更有效,但是,我没有剖析经验,我不确定从哪里开始.我也会喜欢这方面的一些建议.
对于这么长的帖子我很抱歉,但我真的想学习并理解做这些事情的最佳方法.我总是习惯于第二次猜测我的决定,所以我会喜欢一些反馈.谢谢!
我理解宏 - >在clojure中应用了为给定参数提供的所有函数.但是,它似乎不适用于匿名函数(在clojure 1.3.0上).例如:
user> (-> 4 inc inc dec)
5
Run Code Online (Sandbox Code Playgroud)
但:
user> (-> 4 #(+ % 1) #(- % 1) #(+ % 1))
Run Code Online (Sandbox Code Playgroud)
返回错误:
clojure.lang.Symbol cannot be cast to clojure.lang.IPersistentVector
[Thrown class java.lang.ClassCastException]
Run Code Online (Sandbox Code Playgroud)
如果有人知道解决方法会有所帮助.谢谢!
据我所知,隐式转换可能导致可能难以理解的代码,或代码遭遇其他问题(甚至可能是错误?),这就是为什么它们需要显式启用才能在代码中使用而不会收到警告.
但是,假设隐式转换在很大程度上(如果不是大部分时间)用于包装具有另一种类型的对象的对象,那么隐式类也是如此 - 如果我错了,我会感激你纠正我 - 为什么前者需要进口scala.language.implicitConversions但后者不需要?
object Main extends App {
implicit class StringFoo(x: String) {
def fooWithImplicitClass(): Unit =
println("foo with implicit class")
}
// => silence.
"asd".fooWithImplicitClass()
/************************/
class Foo(x: String) {
def fooWithImplicitDef(): Unit =
println("foo with implicit def")
}
implicit def string2Foo(x: String) = new Foo(x)
// => warning: implicit conversion method string2Foo should be enabled
"asd".fooWithImplicitDef()
}
Run Code Online (Sandbox Code Playgroud)