小编sau*_*atz的帖子

"brew install"和"pip install"之间有区别吗?

我想在我的Mac上安装枕头.我有python 2.7和python 3.4,都安装了Homebrew.我试过brew install pillow,它工作正常,但只适用于python 2.7.我一直无法找到为python 3安装它的方法.我试过brew install pillow3但没有运气.我在SO上发现了一个帖子,说首先用Homebrew安装pip3然后使用pip3 install pillow.碰巧,我已经安装了pip3.

我从来没有理解安装带有pip的python包和用Homebrew安装它之间的区别,如果有的话.你能解释一下吗?另外,如果公式可用,是否最好安装Homebrew?如果安装Homebrew确实更好,你知道如何用Homebrew安装python 3的枕头吗?

第一个答案表明我没有说清楚.如果我安装了枕头pip install pillow而不是brew install pillow我的系统安装会有什么不同吗?为什么Homebrew会制作一个能够完成pip的公式呢?它会检查额外的先决条件或什么?为什么有一个用python2的枕头配方,但是我用python3告诉你的枕头?

python macos homebrew pip

29
推荐指数
2
解决办法
2万
查看次数

如何在Android Studio中运行不同的产品口味

我正在编写我的第一个Android应用程序,而我只是开始使用产品风味.我有一个广告支持的应用程序测试版,我正在编写一个没有广告的付费版本.我想,我可以编译这两种口味.当我打开gradle窗口时,我会看到像"编译AdsDebugSources"和"编译PremiumDebugSources"这样的目标.

现在,如果我双击其中任何一个,构建运行完成没有错误,但我无法弄清楚如何运行结果.如果我点击屏幕顶部的绿色"运行"箭头,我就永远无法运行高级应用.

只有一个条目,"app"导致在连接的设备上安装并运行apk,它是AdsDebug版本.我想我需要添加一个新配置,但我找不到任何甚至提到"味道"这个词的文档.

我已经尝试添加配置,但我不明白这些问题是什么意思.我查看了默认应用程序的设置,但它们似乎没有多大意义.我如何告诉它我想要我的应用程序的高级版本?

或者我的问题与配置无关?我注意到,当我看到Build/Edit Flavors列出的两种风格,但没有填写任何数据字段.我会认为这些将从清单中复制.我忽略了什么吗?

我所做的就是将这些代码添加到app level build.gradle文件:

flavorDimensions "dummy"

productFlavors {
    ads {
        dimension "dummy"
        applicationId 'com.example.myApp.ads'
    }

    premium {
        dimension "dummy"
        applicationId 'com.example.myApp.premium'
    }
Run Code Online (Sandbox Code Playgroud)

}

我还需要做什么?

android

22
推荐指数
1
解决办法
7347
查看次数

如何使Menu.add_command()在Mac上的tkinter中工作?

如果我在OS X上创建一个tkinter菜单并尝试向其添加菜单按钮,则菜单中add_comand()不会显示任何内容.

如果下面的代码在Ubuntu上运行,我会得到一个带有两个标记为"红色"和"蓝色"的命令的菜单栏,它们会改变窗口的背景颜色.

在OS X 10.10.1(Yosemite)上,按钮不会出现.我知道我可以使用红色和蓝色命令制作一个下拉菜单,但在我的真实应用程序中,我宁愿不这样做.

from platform import python_version_tuple

major = python_version_tuple()[0]

if major == '3':
    import tkinter as tk
else:
    import Tkinter as tk

root = tk.Tk()

fr = tk.Frame(root, height = 200, width = 200)
fr.pack()
menu = tk.Menu(root)
root.configure(menu=menu)
menu.add_command(label='Red', command=lambda:fr.configure(bg='red'))
menu.add_command(label='Blue', command=lambda:fr.configure(bg='blue'))

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

你能告诉我怎么做我想要的吗?

python macos menu tkinter menubar

6
推荐指数
1
解决办法
1892
查看次数

Bundler发现了错误的ruby版本

我正在使用OS X 10.10.5(Yosemite).我正在尝试为MacDown 克隆github repo.README中的说明说克隆后应该这样做

git submodule init
git submodule update
bundle install
bundle exec pod install
Run Code Online (Sandbox Code Playgroud)

我不是一个红宝石程序员,所以我不得不安装Bundler.前两个步骤运行正常,但是当我试图运行时,bundle install我得到了错误

activesupport-5.0.0.1 requires ruby version >= 2.2.2, which is incompatible with the current version, ruby 2.0.0p481
Run Code Online (Sandbox Code Playgroud)

所以我尝试了brew install ruby,现在我有了

saul@miniMac ? ruby --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
Run Code Online (Sandbox Code Playgroud)

但是,bundle install给我与以前相同的错误消息.很明显,它正在找到红宝石,/usr/bin/ruby而不是那个/usr/local/bin/ruby.我该如何纠正?

我想也许问题是我在升级ruby之前安装了bundler,既没有sudo gem uninstall bundler也没有sudo gem uninstall bundle任何影响,我不知道还有什么可以尝试.

以下是所有输出,如果相关:

saul@miniMac ? bundle install
Fetching gem metadata …
Run Code Online (Sandbox Code Playgroud)

ruby bash activesupport bundler

6
推荐指数
1
解决办法
1893
查看次数

结构声明中空括号的含义是什么?

这是a的简要定义struct,仅显示问题点.

struct Entry {
    // bookkeeping record for managing solution search
    std::array<std::array<bool, DIM>, DIM> filled;   // which holes have been filled
    std::array<std::array<char, MAX>, MAX> cells;    // individual cell entries, 0=empty
    std::vector<Constraint> overlaps;
    std::vector<Hole*>::iterator candidates;
    Entry() = default;
};
Run Code Online (Sandbox Code Playgroud)

这实际上是一个错误.我当时认为默认构造函数会对数组进行零初始化,但它只是用随机垃圾填充它们.我现在知道我需要编写默认构造函数,但我对测试时遇到的行为感到困惑.

这是我的测试功能的简化版本:

void testEntry(void) {
    Entry e;
    std::cout << std::boolalpha;
    e.cells[1][2] = 'a';
    e.filled[0][0] = true;
    for (int i = 0; i < MAX; ++i)
        for (int j = 0; j < MAX; ++j)
            std::cout<<i<<" "<<j<<" "<<e.cells[i][j]<<std::endl;
    for (int i …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

5
推荐指数
1
解决办法
4842
查看次数

如何将字符串数组传递给android电子邮件意图

我正在尝试在 kotlin 中以编程方式发送电子邮件。

这是我的代码,是我从网上找到的 java 示例翻译而来的。

package com.example.emaildemo

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

class MainActivity: AppCompatActivity() {

    override fun onCreate(savedInstanceState:Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val editTextTo:EditText  = findViewById(R.id.editText)
        val editTextSubject:EditText = findViewById(R.id.editText2)
        val editTextMessage:EditText = findViewById(R.id.editText3)
        val button1:Button = findViewById(R.id.button)

        button1.setOnClickListener(View.OnClickListener{

          val to = editTextTo.getText().toString()
          val subject = editTextSubject.getText().toString()
          val message = editTextMessage.getText().toString()

          val intent = Intent(Intent.ACTION_SEND)
          val addressees = arrayOf(to)
          intent.putExtra(Intent.EXTRA_EMAIL, addressees)
          intent.putExtra(Intent.EXTRA_SUBJECT, subject)
          intent.putExtra(Intent.EXTRA_TEXT, message)
          intent.setType("message/rfc822")
          startActivity(Intent.createChooser(intent, "Select Email Sending App :")) …
Run Code Online (Sandbox Code Playgroud)

android kotlin

4
推荐指数
1
解决办法
4241
查看次数

从文件创建Vector [Vector [Char]]

我是新手,试图读取文件并创建Vector [Vector [Char]].文件的每一行应该产生不同的向量.

这是我想出的:

val empty: Vector[Vector[Char]]       = Vector()
lazy val lines: List[String]          = Source.fromFile("test.txt").getLines.toList
lazy val vecList: List[Vector[Char]]  = lines.map(str => Vector(str: _*))
lazy val vector: Vector[Vector[Char]] = vecList.foldRight(empty) (_ +: _)
Run Code Online (Sandbox Code Playgroud)

该文件永远不会很大,因此可扩展性不是问题.上面的代码似乎有效,但我觉得它在谷仓周围都是如此.有没有更简单,更直接的方法来做到这一点?

scala

3
推荐指数
1
解决办法
486
查看次数

Django 1.4中的CSRF保护

我试图通过"Django Book"来学习django,我遇到了CSRF保护问题.我在这里找到了很多建议,但似乎没有一个适合我.

使用Chrome我收到消息:CSRF token missing or incorrect.
使用Internet Explorer我收到消息:CSRF cookie not set.

如果我'django.middleware.csrf.CsrfViewMiddleware'在settings.py中注释掉,一切似乎都有效(虽然当然没有任何东西被邮寄到虚假的地址.)我已经尝试csrf_protect在我的视图上放置一个装饰器,但它没有帮助.我也尝试过对这个调用进行评论,但send_mail我仍然遇到CSRF失败,显然这是导致问题的ContactForm.

(我正在使用django 1.4.1.)

我需要做什么?

views.py

from django.shortcuts import render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from contact.forms import ContactForm
from django.template import RequestContext
from django.core.mail import send_mail

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            send_mail(
                cd['subject'],
                cd['message'],
                cd.get('email', 'noreply@example.com'),
                ['siteowner@example.com'],
            )
            return HttpResponseRedirect('/contact/thanks/')
    else:
        form = ContactForm()
    return render_to_response('contact_form.html', {'form': form}, context_instance=RequestContext(request)) …
Run Code Online (Sandbox Code Playgroud)

django django-csrf

3
推荐指数
1
解决办法
837
查看次数

使用C++ String打开fstream

在Visual Studio 2010中,即使使用/ Za(struct ANSI)编译器标志,以下代码也可以工作.

string name = "input.txt";

ifstream fin;

fin.open(name);
Run Code Online (Sandbox Code Playgroud)

我能找到的所有文档似乎都表明你必须将一个C字符串传递给ifstream :: open.这真的是ANSI现在,还是微软的扩展,还有/Za旗帜的问题?

谢谢,

索尔

c++ ansi visual-studio

2
推荐指数
1
解决办法
451
查看次数

Scala中的闭包

我正在尝试学习Scala,我无法理解这个例子.在Odersky等人的Scala编程9.1中.等,作者产生了这个代码

object FileMatcher {
  private def filesHere = (new java.io.File(".")).listFiles
  private def filesMatching(matcher: String => Boolean) =
    for (file <- filesHere; if matcher(file.getName))
      yield file
  def filesEnding(query: String) =
    filesMatching(_.endsWith(query))
  def filesContaining(query: String) =
    filesMatching(_.contains(query))
  def filesRegex(query: String) =
    filesMatching(_.matches(query))
}
Run Code Online (Sandbox Code Playgroud)

它们给出了一个场景,您正在编写一个由其他人编写的客户端代码使用的FileMatcher对象,而这段代码是几次重构的结果.

我理解查询是一个自由变量,但我不明白调用者应该如何使用它.由于Scala是,如果我理解正确,词汇范围,这是一个对象定义,客户端无法在词法封闭范围内定义查询,那么查询来自何处?

你能举个例子说明一个客户端应该如何调用filesEnding来查找以".txt"结尾的所有文件吗?

closures scala

2
推荐指数
1
解决办法
641
查看次数