小编Cha*_*ker的帖子

go中环境变量的问题

我试图在我的 .go 文件上运行 go install 但是,它似乎失败了。它失败是因为我的 GOBIN 环境变量没有设置。但是,当我回应它时,我确实得到了它的设置,因为我的 .bashrc 和 .bash_profile 文件确保它已设置。但是,它没有在 go env 中设置。出于某种原因,当实际设置时,go 无法识别其设置。

但是,如果我在 shell 上手动设置为:

me$ export GOBIN=$GOBIN
Run Code Online (Sandbox Code Playgroud)

现在 go env 决定识别它,即使我的 .bashrc 文件上有明确的行导出它并且我的回声确认了它的设置。有人知道为什么 go 的行为很奇怪吗?

我尝试过的东西/参考

我的操作系统

mac osx 小牛。

GO版

- 我的 go 版本是 go 版本 go1.2 darwin/386。当我跑

go version
Run Code Online (Sandbox Code Playgroud)

我得到:

go version go1.2 darwin/386
Run Code Online (Sandbox Code Playgroud)

go env 识别的内容和环境变量

跑步

go env
Run Code Online (Sandbox Code Playgroud)

在我的终端中显示:

GOARCH="386"
GOBIN=""
GOCHAR="8"
GOEXE=""
GOHOSTARCH="386"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH=""
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread -fno-common"
CXX="g++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

我的 …

environment-variables go

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

可以在基于 TensorFlow docker 镜像的 docker 容器中使用 python 3.5 吗?

我试图在我的 docker 容器中使用 python 3.5。我试过:

gcr.io/tensorflow/tensorflow:latest-devel
Run Code Online (Sandbox Code Playgroud)

gcr.io/tensorflow/tensorflow:latest-devel-py3
Run Code Online (Sandbox Code Playgroud)

但似乎两个图像都只有最高 3.4 的 python 版本。是否可以将 docker 容器作为基本映像,但也可以使用 python 3.5?或者更好的是,是否有可能让来自官方 tensorflow 图像的基础图像具有 python 3.5 本身?

我知道可以在 Dockerfile 中 pip 安装它(如tf 下载页面所示):

RUN export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl
pip3 install --upgrade $TF_BINARY_URL
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不会让我得到最新的tensorflow 版本。如果可以 pip 安装最新的 TensorFlow 版本,为什么最新的基础映像不是获取最新的 TensorFlow 构建并将其放入 python3.5 的方法?


我已经明确地试图安装Python 3.5所建议这里然而,尽管蟒蛇3.5的安装是成功的,它打破的方式,我不能修复(如解释numpy的位置)。老实说,最好的解决方案是让 python 3.5 自动在图像上可用,但由于某种原因它不在那里。我对此做了一些研究,似乎安装 python 3.5 有点困难。这是为什么?缺少python 3.5的原因是因为tensorflow还是因为ubuntu?我的理想解决方案是不让我安装 python 3.5 并且它来了,但似乎这可能存在根本问题。它是什么?仅仅是因为还没有为tensorflow docker image和ubuntu安装它,还是我把一个简单的问题复杂化了?


作为另一种解决方案,我想也许安装 anaconda 或其他东西,然后再这样做,但我想将 tensorflow 作为我的基本图像,而且 anaconda 似乎建议将它们的图像作为基本图像。由于没有使用 apt-install 安装 …

python ubuntu numpy docker tensorflow

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

在执行正常复制“Cmd + c”时,如何阻止 VS code 在 Vim 中进入正常模式?

每当我选择代码然后执行Cmd + c(复制)时,它就会在 vim 中自行进入正常模式。所以:

  1. 如何阻止 VS code 这样做?
  2. 它为什么要这么做?

我的复制粘贴默认键绑定有(转到命令颗粒类型键绑定转到默认键绑定):

{ "key": "cmd+c",                 "command": "execCopy" },
Run Code Online (Sandbox Code Playgroud)

可能是这样的:{ "key": "cmd+c", "command": "extension.vim_cmd+c", "when": "editorTextFocus && vim.active && vim.overrideCopy && vim.use<D-c> && !inDebugRepl" },除了它不允许我编辑文件!?!?!

visual-studio visual-studio-code

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

如何从 python 不使用 gmail 发送电子邮件?

我已经有了用 python 发送电子邮件的代码:

\n\n
def send_email_gmail(subject, message, destination):\n    """ Send an e-mail using gmail with message to destination email.\n\n    Arguments:\n        message {str} -- message string to send.\n        destination {str} -- destination email (as string)\n    """\n    server = smtplib.SMTP(\'smtp.gmail.com\', 587)\n    server.starttls()\n    # not a real email account nor password, its all ok!\n    server.login(\'me123@gmail.com\', \'fakepassword111!!!\')\n\n    # craft message\n    msg = EmailMessage()\n\n    message = f\'{message}\\n\'\n    msg.set_content(message)\n    msg[\'Subject\'] = subject\n    msg[\'From\'] = \'me123@gmail.com\'\n    msg[\'To\'] = destination\n    # send msg\n    server.send_message(msg)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经阅读了多个问题(使用 gmail 和 …

python email

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

如何通过配置文件在 SLURM 中使用 sbatch

我想使用 sbatch 运行 python 脚本,但是,似乎使用 sbatch 运行 python 脚本的唯一方法是拥有一个 bash 脚本,然后运行 ​​python 脚本。就像有batch_main.sh

#!/bin/bash
#SBATCH --job-name=python_script

arg=argument

python python_batch_script.sh
Run Code Online (Sandbox Code Playgroud)

然后运行:

sbatch batch_main.sh
Run Code Online (Sandbox Code Playgroud)

问题是我希望有一个单独的参数配置文件(因为它通常不是单个数字或参数)并且还能够使用数组选项。另外,我通常同时运行多个不同的sbatch 作业(使用不同的配置),因此,如果更改配置文件不会使不同的 sbatch 运行相互妨碍(因为如果作业排队,然后配置文件稍后更改,它将运行最新的配置文件,而不是我运行 sbatch 时的配置副本)。为了解决这个问题,我发现当我运行 sbatch 脚本时,SLURM 实际上会将提交脚本复制到其内部数据库(我在询问后发现了这一点:在运行期间更改发送到 slurm 中的 bash 脚本是一个坏主意吗?)。因此,我实际上决定将配置硬编码到 bash 提交脚本中(本质上使提交脚本成为配置文件)。这样我只需编辑提交脚本,然后运行该文件。然而,我想阻止这个,因为这让我用 bash 编写,我想不惜一切代价避免。

理想情况下,我想运行一个直接运行 python 的 sbatch。

由于这可能不可能,我想知道还有哪些其他选项可以解决这个问题。例如,是否可以让 slurm 将不同的文件(如 python 配置文件)复制到其内部数据库,以便当它对作业进行排队时,它运行我确切想要运行的作业?(请注意,运行 sbatch 作业然后更改配置文件不是执行此操作的方法,因为这可能会在更改配置文件时导致问题,slrum 将读取配置的最新副本而不是配置的副本当作业运行时)。或者我还有什么其他选择?我真的坚持编写 bash 还是我可以做其他事情来处理 python 中的配置而不是其他一些奇怪的黑客?

总的来说,我还想知道人们在现实世界中为此做了什么,或者对此有什么好的实践/标准。

python bash shell slurm sbatch

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

代码行 `np.transpose(image_tensor, (2, 1, 0))` 有什么作用?

我在看一些代码,有一行说:

# transpose to standard format
# You might want to comment this line or reverse the shuffle
# if you will use a learning algorithm like CNN, since they like their channels separated.
image_standard_form = np.transpose(image, (2, 1, 0))
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚它做了什么。我查看了文档,但我不太明白转置参数中的“轴”是什么意思。它说:

axes : list of ints, optional
By default, reverse the dimensions, otherwise permute the axes according to the values given.
Run Code Online (Sandbox Code Playgroud)

但它并没有真正说明它的用途。此外,使用转置和元组的示例并不是很有见地(或者至少没有向我展示它应该做什么)。有人可以向我解释它应该做什么吗?

我也做了一个我自己的例子来弄清楚它的作用,但我不是 100% 我理解它:

>>> x
array([[[ 0.,  1.,  2.],
        [ 0.,  1.,  2.],
        [ 0.,  1., …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

如何检查变量是否为 sympy 表达式?

我想检查一个 python 变量是一个 sympy 表达式。很容易检查它是否是一个 sympy 变量:

isinstance(arg, symbol.Symbol)
Run Code Online (Sandbox Code Playgroud)

但我找不到怎么做:

isinstance(arg, sympy.Expression)
Run Code Online (Sandbox Code Playgroud)

是否可以检查python变量是否包含sympy表达式或变量?


作为快速检查,我做了:

expr2 = x-y
type(expr2)
<class 'sympy.core.add.Add'>
Run Code Online (Sandbox Code Playgroud)

但我不想有一个巨大的系列 if 语句子句检查每种可能的数学表达式类型。似乎多余/愚蠢。


能够检测变量何时属于任何类型的 sympy 相关事物,然后对其采取行动(然后可能稍后检查它是否是表达式或更详细的东西......)

python sympy

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

是否有可能访问Matlab中函数句柄内的变量?

比如说我定义:

c=3;
f = @(x) x + c;
Run Code Online (Sandbox Code Playgroud)

是可以做到的

 f.c
Run Code Online (Sandbox Code Playgroud)

或者基本上可以访问函数句柄中的变量?

我知道我可以在Matlab中创建对象和结构但是问题是我有一个带有一堆函数的.mat文件,我希望看到它们正在使用的变量.在这个特定的场景中,我试图通过访问matlab中的变量来避免重新编码我的东西,但是在我没有选择重新编码的情况下,有一种方法可以访问定义函数句柄的变量/字段.我的意思是,当我打电话给f(3)它返回6所以它显然知道c某个地方,所以我如何获得它c

matlab function handle

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

为什么我能够在 Pytorch 中通过分离来更改张量的值,而计算图不知道它?

我可以更改需要 grad 的张量的值,而 autograd 不知道它:

def error_unexpected_way_to_by_pass_safety():
    import torch 
    a = torch.tensor([1,2,3.], requires_grad=True)
    # are detached tensor's leafs? yes they are
    a_detached = a.detach()
    #a.fill_(2) # illegal, warns you that a tensor which requires grads is used in an inplace op (so it won't be recorded in computation graph so it wont take the right derivative of the forward path as this op won't be in it)
    a_detached.fill_(2) # weird that this one is allowed, seems to allow me to …
Run Code Online (Sandbox Code Playgroud)

python pytorch

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

如何在 Coq 中编写中间证明语句 - 类似于 Isar 中的“使用 Lemma1、Lemma2 by auto 有语句”,但在 Coq 中?

我想在 Coq 证明脚本中编写中间引理,例如,在 SCRIPTProof. SCRIPT Qed.本身中 - 类似于在 Isar 中的做法。在 Coq 中如何做到这一点?例如:

have Lemma using Lemma1, Lemma2 by auto.
Run Code Online (Sandbox Code Playgroud)

我知道这个exact陈述,想知道是否就是这样……但我也想得到这个陈述的证据,就像在伊萨尔我们有have by autousing Proof. LEMMA_PROOF Qed.

为了使其具体化,我试图做这些非常简单的证明:

Module small_example.

  Theorem add_easy_induct_1:
    forall n:nat,
      n + 0 = n.
  Proof.
    intros.
    induction n as [| n' IH].
    - simpl. reflexivity.
    - simpl. rewrite -> IH. reflexivity.
  Qed.

  Theorem plus_n_Sm :
    forall n m : nat,
      S (n + m) = n + (S m).
  Proof. …
Run Code Online (Sandbox Code Playgroud)

coq isabelle isar coqide coq-tactic

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