这个页面和许多相似的页面给出了使用git设置osxkeychain凭证助手的说明.我遵循了这些指示; 一切似乎都很好.我可以看到Keychain Access应用程序中的用户名和密码是正确的,git-credential-osxkeychain可以访问github.com记录.当我输入时,git config -l我可以看到该条目credential.helper=osxkeychain以及正确的user.name和user.email条目.当我跑步时,git credential-osxkeychain我看到我显然应该使用的用法消息.在任何时候我都不会收到错误消息.一切似乎都正确设置.
但是,无论我多少次git推送特定的存储库,它总是要求我的用户名和密码.输入我的Keychain Access条目中的用户名和密码有效; 所以它似乎不是登录问题.另外,当我输入git credential-osxkeychain erase(或git-credential-osxkeychain erase)时,命令会无声地挂起,就我所知,无限期.
到目前为止,我还没有找到任何记录此问题的内容.这个问题提出了类似的问题,但我的git版本是2.6.4,所以解决方案没有帮助.为什么这样做?如何让git用osxkeychain凭证助手记住我的用户名和密码?
我使用的是Mac OS X 10.11.4和git 2.6.4版.
假设我使用 C 扩展 API 实现了两种 Python 类型,并且这些类型是相同的(相同的数据布局/C struct),除了它们的名称和一些方法之外。假设所有方法都遵循数据布局,您可以在 C 函数中安全地将对象的类型从其中一种类型更改为另一种类型吗?
值得注意的是,从 Python 3.9 开始,似乎有一个 function Py_SET_TYPE,但文档并不清楚是否/何时可以安全地执行此操作。我有兴趣了解如何安全地使用此函数以及在 3.9 版本之前是否可以安全地更改类型。
我正在编写一个 Python C 扩展来实现持久哈希数组映射 Trie (PHAMT);如果它有用,源代码在这里(截至撰写本文时,它位于此提交)。我想添加的一个功能是能够从 PHAMT 创建瞬态哈希数组映射 Trie (THAMT)。THAMT 可以及时从 PHAMT 中产生O(1),并且可以有效地就地突变。重要的是,THAMT 与 PHAMT\xe2\x80\x94 具有完全相同的底层C 数据结构。PHAMT和 THAMT 之间的唯一真正区别是它们的 Python 类型封装的一些方法。这种通用结构允许人们在完成一组编辑后非常有效地将 THAMT 转换回 PHAMT。(当对 PHAMT 执行大量更新时,此模式通常会减少内存分配的数量)。
实现从 THAMT 到 PHAMT 的转换的一种非常方便的方法是简单地将 THAMT 对象的类型指针从 THAMT 类型更改为 PHAMT 类型。我相信我可以编写安全地导航此更改的代码,但我可以想象这样做可能会破坏 Python 垃圾收集器。
\n(需要明确的是:动机只是问题如何产生的背景。我不是在寻求实现动机中描述的结构的帮助, …
我一直在尝试使用pythreejs在jupyter笔记本中渲染3D对象。对于第一个测试,我使用四面体做了以下简单示例:
# Plot a mesh with pythreejs
import pythreejs as p3js
from IPython.display import display
vertices = [[0.3,0,0],[0,0.5,0.4],[-0.2,0.3,-0.1],[0.9,0,-0.3]]
faces = [[0,1,2],[1,2,3],[2,0,3],[0,1,3]]
colors = ['#ff0000','#00ff00','#0000ff','#ffffff']
faces = [f + [None, [colors[i] for i in f]] for f in faces]
geo = p3js.Geometry(vertices=vertices, faces=faces, colors=colors)
geo.exec_three_obj_method('computeFaceNormals')
mesh = p3js.Mesh(
geometry=geo,
material=p3js.MeshBasicMaterial(vertexColors='VertexColors',
side='DoubleSide'),
position=list(-np.mean(vertices, axis=0)))
cam = p3js.PerspectiveCamera(position=[4,0,0], up=[0,0,1], fov=10)
scene = p3js.Scene(
children=[mesh, cam, p3js.AmbientLight(color=u'0x777777')],
background='black')
renderer = p3js.Renderer(camera=cam, scene=scene,
controls=[p3js.OrbitControls(controlling=cam)])
display(renderer)
Run Code Online (Sandbox Code Playgroud)
当我在jupyter笔记本(Python 3.6.6,pythreejs版本1.1.0)中对上述内容进行评估时,我得到的期望值或多或少:黑色背景带有看起来很滑稽的四面体,其顶点具有不同的颜色。大!所以我尝试了一个更复杂的网格。我已经将这个网格的数据以gzipped-hdf5格式上传到文件放置器中,此处;您可以下载它,将其压缩,然后使用以下代码阅读:
# load the mesh
import h5py …Run Code Online (Sandbox Code Playgroud) 我使用 docker 和 docker compose 将科学工具打包成易于/通用的可执行模块。一个例子是一个 docker,它将一个相当复杂的 python 库打包到一个运行 jupyter notebook 服务器的容器中;这个想法是,其他不太精通技术的科学家可以克隆一个 github 存储库,运行docker-compose up然后进行分析,而无需安装库、配置各种插件和其他依赖项等。
我让这一切工作正常,只是我在让卷安装以连贯的方式工作时遇到问题。这样做的原因是 docker 容器内的库处理多种数据集,用户将这些数据集存储在几个单独的目录中,这些目录通常通过 shell 环境变量进行跟踪。(请不要告诉我这是一个糟糕的方法——这是在现场做事的方式,而不是我选择的做事方式。)因此,例如,如果用户存储 FreeSurfer 数据,它们将有一个名为 SUBJECTS_DIR 的环境变量,指向包含数据的目录;如果他们存储 HCP 数据,他们将有一个环境变量 HCP_SUBJECTS_DIR。但是,他们可能同时拥有这些集合,或者两者都没有(以及其他一些)。
我希望能够在我的 docker-compose.yml 文件中放置类似的内容以处理这些情况:
version: '3'
services:
my_fancy_library:
build: .
ports:
- "8080:8888"
environment:
- HCP_SUBJECTS_DIR="/hcp_subjects"
- SUBJECTS_DIR="/freesurfer_subjects"
volumes:
- "$SUBJECTS_DIR:/freesurfer_subjects"
- "$HCP_SUBJECTS_DIR:/hcp_subjects"
Run Code Online (Sandbox Code Playgroud)
在对此进行测试时,如果用户设置了两个环境变量,则一切正常。但是,如果他们没有这些设置中的一个,我会收到一个关于不安装长度少于 2 个字符的目录的错误(我认为这是对安装由“:/hcp_subjects”指定的卷的抱怨)。
这个问题问的基本相同,答案指向这里,如果我理解正确的话,它基本上解释了如何以某种方式解决多个 docker-compose 文件。由于以下几个原因,这对于我的案例来说并不是一个真正可行的解决方案:
我能够想出的唯一体面的解决方案是要求用户运行脚本./run.sh而不是docker-compose up; 该脚本检查环境变量,docker-compose.yml用适当的卷写出自己的文件,然后 …
我一直在学习Julia,并且想花一些时间通过在语言中添加一些我最喜欢的功能/不变结构来进行尝试。特别是:用于延迟计算和承诺的类型,例如clojure的延迟和承诺类型。
延迟和承诺在原则上都Ref{T}与警告类似,(1)obj[]在返回obj承诺或延迟时可能需要等待一个值或运行计算,然后(2)延迟/承诺只能设置一次,并且永远在设置之前读取,因此是不可变的(至少,其接口是不可变对象的接口)。
我的直觉是,延迟和承诺都应该继承自抽象的不可变ref类型,因为这部分行为至少是相似的。但是,我似乎无法做到这一点:
abstract type ImmutableRef <: Ref end
Run Code Online (Sandbox Code Playgroud)
ImmutableRef定义中的无效子类型
在仔细浏览了Julia的源代码之后,似乎该Ref类型不是以一种典型的方式声明的,而是在Julia的核心C代码中声明的。是否可以从Julia中的Ref继承?如果没有,那么实现/组织这类类似ref的类型的惯用Julia方法是什么?
python ×2
cpython ×1
credentials ×1
docker ×1
dockerfile ×1
git ×1
github ×1
julia ×1
macos ×1
mesh ×1
python-3.x ×1
python-c-api ×1
three.js ×1
types ×1
volumes ×1