最近我需要使用Anaconda将PyPdf2安装到我的一个程序中.不幸的是,我失败了,但是添加到Anaconda环境的URL禁止更新所有Conda库.每当我尝试更新anaconda时,它都会提供以下信息
conda update conda
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata ..........Error: Invalid index file: https://pypi.python.org/pypi/PyPDF2/1.26.0/win-64/repodata.json: No JSON object could be decoded
Run Code Online (Sandbox Code Playgroud)
我键入命令conda info以查看导致错误的原因,我发现许多指向PyPdf2的URL!
简单地说,我想从anaconda的频道URL中删除所有这些URL,我该怎么办?无论是手动还是自动.
注意:我已经卸载了Anaconda,并重新安装,但没有运气!
C:\WINDOWS\system32>conda info
Using Anaconda Cloud api site https://api.anaconda.org
Current conda install:
platform : win-64
conda version : 4.1.6
conda-env version : 2.5.1
conda-build version : 1.21.3
python version : 2.7.12.final.0
requests version : 2.10.0
root environment : C:\Anaconda2 (writable)
default environment : C:\Anaconda2
envs directories : C:\Anaconda2\envs
package cache : …Run Code Online (Sandbox Code Playgroud) http://play.golang.org/p/vhaKi5uVmm
package main
import "fmt"
var battle = make(chan string)
func warrior(name string, done chan struct{}) {
select {
case opponent := <-battle:
fmt.Printf("%s beat %s\n", name, opponent)
case battle <- name:
// I lost :-(
}
done <- struct{}{}
}
func main() {
done := make(chan struct{})
langs := []string{"Go", "C", "C++", "Java", "Perl", "Python"}
for _, l := range langs { go warrior(l, done) }
for _ = range langs { <-done }
}
Run Code Online (Sandbox Code Playgroud)
[第1个问题]
done <- struct{}{} …Run Code Online (Sandbox Code Playgroud) Slack聊天工具默认发送电子邮件通知,说"你被提到......"实际上它是@channel而不是你.我能找到关闭它的唯一方法是进入每个频道设置.
如何创建一个频道数组?
例如:用一个通道数组替换以下五行,大小为5:
var c0 chan int = make(chan int);
var c1 chan int = make(chan int);
var c2 chan int = make(chan int);
var c3 chan int = make(chan int);
var c4 chan int = make(chan int);
Run Code Online (Sandbox Code Playgroud) Go的口号之一是不要通过共享记忆来沟通; 相反,通过沟通分享记忆.
我想知道Go是否允许在同一台机器上运行的两个不同的Go-compiled二进制文件相互通信(即客户端 - 服务器),以及与C++中的boost :: interprocess相比有多快?到目前为止,我看到的所有例子都只说明了相同程序例程之间的通信.
一个简单的Go示例(具有单独的客户端和服务器代码)将非常感谢!
我在这个链接中看到了一些代码,并且感到困惑:http://www.darkcoding.net/software/go-lang-after-four-months/
第二个值的意义是什么(ok)?
for self.isRunning {
select {
case serverData, ok = <-fromServer: // What's the meaning of the second value(ok)?
if ok {
self.onServer(serverData)
} else {
self.isRunning = false
}
case userInput, ok = <-fromUser:
if ok {
self.onUser(userInput)
} else {
self.isRunning = false
}
}
}
Run Code Online (Sandbox Code Playgroud) 给出以下简单的Go程序
package main
import (
"fmt"
)
func total(ch chan int) {
res := 0
for iter := range ch {
res += iter
}
ch <- res
}
func main() {
ch := make(chan int)
go total(ch)
ch <- 1
ch <- 2
ch <- 3
fmt.Println("Total is ", <-ch)
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人可以告诉我为什么我得到
throw: all goroutines are asleep - deadlock!
Run Code Online (Sandbox Code Playgroud)
谢谢
在查看一些golang代码时,我发现了以下内容:
ch := make(chan int)
Run Code Online (Sandbox Code Playgroud)
我在golang Chanels的在线教程中查了解:
https://tour.golang.org/concurrency/2
但我觉得这个例子不清楚.
有人可以给我一个简单的解释和使用频道的例子吗?
所以我决定在我的WCF应用程序中提高性能,并尝试缓存Channels和ChannelFactory.关于所有这些我有两个问题需要在开始之前清理.
1)ChannelFactory应该实现为单例吗?
2)我不确定如何缓存/重用各个频道.你有任何关于如何分享的例子吗?
值得注意的是,我的WCF服务被部署为独立应用程序,只有一个端点.
编辑:
感谢您的回复.我还有几个问题......
1)我想我对缓存应该发生的位置感到困惑.我正在提供一个客户端API,它将此代码用于我们公司的另一个部门.这个缓存是否发生在客户端?
2)客户端API将用作Silverlight应用程序的一部分,这会改变什么吗?特别是,在这种情况下可以使用哪些缓存机制?
3)我还不清楚GetChannelFactory方法的设计.如果我只有一个服务,是否应该只创建和缓存一个ChannelFactory?
我还没有实现任何缓存功能(因为我对如何完成它完全感到困惑!),但这是我到目前为止客户端代理所拥有的:
namespace MyCompany.MyProject.Proxies
{
static readonly ChannelFactory<IMyService> channelFactory =
new ChannelFactory<IMyService>("IMyService");
public Response DoSomething(Request request)
{
var channel = channelFactory.CreateChannel();
try
{
Response response = channel.DoSomethingWithService(request);
((ICommunicationObject)channel).Close();
return response;
}
catch(Exception exception)
{
((ICommenicationObject)channel).Abort();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我是新手,我正在尝试创建一个简单的聊天服务器,客户端可以向所有连接的客户端广播消息.
在我的服务器中,我有一个goroutine(无限循环)接受连接,所有连接都由一个通道接收.
go func() {
for {
conn, _ := listener.Accept()
ch <- conn
}
}()
Run Code Online (Sandbox Code Playgroud)
然后,我为每个连接的客户端启动一个处理程序(goroutine).在处理程序内部,我尝试通过迭代通道来广播所有连接.
for c := range ch {
conn.Write(msg)
}
Run Code Online (Sandbox Code Playgroud)
但是,我不能播放因为(我认为从阅读文档)通道需要在迭代之前关闭.我不确定何时应关闭频道,因为我想继续接受新的连接,关闭频道不会让我这样做.如果有人可以帮助我,或提供更好的方式向所有连接的客户广播消息,我们将不胜感激.