所以我在scala中导入包时遇到问题。我从github下载了包breeze,因为我想从概率分布中抽样。
我习惯使用Python,我可以在其中下载一个包,将其包含在路径中,然后将其导入代码中。因此,我对使用单独的构建工具"的想法非常陌生。使用第三方包。
所以我下载了#34;微风"来自github的源代码,安装了sbt,然后在微风的源代码中,我运行了sbt,然后我使用了"程序集"命令获得微风的.jar。
如果我想使用scala解释器,我可以使用
导入包 scala -cp breeze-master/target/scala-2.11/breeze-parent-assembly-0.8.jar
问题是我想在一个单独的代码中使用这个包,我在一个名为Chromosome.scala的文件中写。当我尝试导入包时(如下所示),我收到错误:
error: not found: object breeze
这是我的代码:
// Chromosome.scala
import breeze.stats.distributions._
class Chromosome(s:Int, bitstring:Array[Boolean]) {
val size:Int = s;
val dna:Array[Boolean] = bitstring;
var fitness:Int = 0;
def mutate(prob:Float):Unit = {
// This method will randomly "mutate" the dna sequence by flipping a bit.
// Any individual bit may be flipped with probability 'pm', usually small.
val pm:Float = prob;
// The variable bern is an instance of a Bernoulli random variable,
// whose probability parameter is equal to 'pm'.
var bern = new Bernoulli(pm);
//Loop through the 'dna' array and flip each bit with probability pm.
for (i <- 0 to (size - 1)) {
var flip = bern.draw();
if (flip) {
dna(i) = !(dna(i));
}
}
}
答案 0 :(得分:1)
“脚本?”这是什么以及它与您的SBT项目的联系是什么? Scala脚本包含自己的Scala解释器/编译器启动命令(/ REPL ...)。如果你想访问标准库之外的东西,你必须在那里包含它们。或者,您可以使用SBT Start Script plug-in生成一个包含项目依赖项的启动器脚本。它只能在本地工作,但您可以编写一些文本处理和其他shell脚本来生成便携式启动包。
答案 1 :(得分:0)
看起来对于sbt应该为你做什么有一些可以理解的混淆。
首先,您通常不需要从github下载包并从源代码构建它。在您执行的极少数情况下(例如,当您需要未将其作为库的版本的功能时),sbt可以处理繁重的工作。
相反,你告诉sbt关于你正在构建的项目(包括它的依赖项),sbt将下载它们,编译代码,并为scala解释器设置运行时类路径(在无数的其他构建中)相关的任务)。
只需关注the directions on the breeze wiki即可。具体来说,在项目的根文件夹中创建一个build.sbt
文件并将其复制到其中:
libraryDependencies ++= Seq(
// other dependencies here
"org.scalanlp" % "breeze_2.10" % "0.7",
// native libraries are not included by default. add this if you want them (as of 0.7)
// native libraries greatly improve performance, but increase jar sizes.
"org.scalanlp" % "breeze-natives_2.10" % "0.7",
)
resolvers ++= Seq(
// other resolvers here
// if you want to use snapshot builds (currently 0.8-SNAPSHOT), use this.
"Sonatype Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/",
"Sonatype Releases" at "https://oss.sonatype.org/content/repositories/releases/"
)
// Scala 2.9.2 is still supported for 0.2.1, but is dropped afterwards.
// Don't use an earlier version of 2.10, you will probably get weird compiler crashes.
scalaVersion := "2.10.3"
将您的来源放入相应的文件夹(默认情况下为src/main/scala
)并运行sbt console
。此命令将下载依赖项,编译代码并启动Scala解释器。此时,您应该能够与您的班级进行互动。