我有几个存储库,显然我正在使用 GitHub 密码身份验证的缓存版本。我最近才了解到这一点,因为 GitHub 停止支持密码,而是需要个人访问令牌 (PAT) 或 SSH 密钥。
对于拉取或推送的所有私有存储库,我会收到以下消息:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/villano-lab/CEvNS.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)
我通过查看这篇文章解决了这个问题。根据该信息,我推断我应该检查我的参数credential.helper。通过做:
git config --list
Run Code Online (Sandbox Code Playgroud)
我发现它被设置为“存储”,如下所示:
credential.helper=store
Run Code Online (Sandbox Code Playgroud)
所以我所做的就是这样设置的:
git config credential.helper ""
Run Code Online (Sandbox Code Playgroud)
这样做的目的是让我再次输入我的用户名和密码(而不是由 git 客户端以默认方式提供)。然后,我能够创建 GitHub 个人访问令牌并在密码字段中使用它,并且满足新的 GitHub 要求,并且我没有收到错误。
问题是,我如何使其永久化?例如,如何将 PAT 放入 git 客户端缓存中,这样我就不必像以前一样再次输入它?截至目前,如果我回到:
git config credential.helper store
Run Code Online (Sandbox Code Playgroud)
它将恢复为旧密码,GitHub …
我想创建一组轴,以在父组轴的特定位置形成插入.因此,不宜只使用参数loc=1,2,3中inset_axes,如下所示:
inset_axes = inset_axes(parent_axes,
width="30%", # width = 30% of parent_bbox
height=1., # height : 1 inch
loc=3)
Run Code Online (Sandbox Code Playgroud)
但是,我想要接近这一点.这里和这里的答案似乎是比我复杂得多的问题的答案.
所以,问题是我可以在上面的代码中替换一个参数,它允许插入轴在父轴中的自定义位置吗?我试图使用bbox_to_anchor但不理解文档中的规范或行为.具体来说,我尝试过:
inset_axes = inset_axes(parent_axes,
width="30%", # width = 30% of parent_bbox
height=1., # height : 1 inch
bbox_to_anchor=(0.4,0.1))
Run Code Online (Sandbox Code Playgroud)
尝试使插图的左侧和底部的锚点分别位于x轴和y轴的40%和10%处.或者,我试图把它放在绝对坐标中:
inset_axes = inset_axes(parent_axes,
width="30%", # width = 30% of parent_bbox
height=1., # height : 1 inch
bbox_to_anchor=(-4,-100))
Run Code Online (Sandbox Code Playgroud)
这些都没有正常工作,并给了我一个我无法解释的警告.
更一般地说,它似乎loc是属于许多函数的一个非常标准的参数matplotlib,因此,是否可以在任何地方使用这个问题的一般解决方案?看起来就是这样bbox_to_anchor但又一次,我无法弄清楚如何正确使用它.
我使用matplotlib并遵循此答案创建了一个交互式绘图。该图使用滑块以允许用户控制点的垂直(y 轴)位置,并在它们发生变化时为它们拟合样条曲线。完成此操作的代码在这里:
import matplotlib.animation as animation
from matplotlib.widgets import Slider
import matplotlib as mpl
from matplotlib import pyplot as plt
import scipy.interpolate as inter
import numpy as np
func = lambda x: 0.1*x**2
#get a list of points to fit a spline to as well
N = 10
xmin = 0
xmax = 10
x = np.linspace(xmin,xmax,N)
#spline fit
yvals = func(x)
spline = inter.InterpolatedUnivariateSpline (x, yvals)
#figure.subplot.right
mpl.rcParams['figure.subplot.right'] = 0.8
#set up a plot
fig,axes …Run Code Online (Sandbox Code Playgroud) 我有一个项目,我正在使用 cmake 来帮助构建。假设项目在/home/proj,构建目录在/home/proj-build
该/home/proj目录是一个带有一些标签的 git 存储库,我想在构建代码时将最新的标签合并到代码中,以便二进制文件知道它是什么版本。
在我的CMakeLists.txt文件中,我在设置部分有以下节:
set(CMAKE_BUILD_TYPE None)
message(${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && exec git describe --abbrev=0 --always OUTPUT_VARIABLE GIT_VERSION)
message("${GIT_VERSION}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__GIT_VERSION=\\\"${GIT_VERSION}\\\"")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__GIT_VERSION=\\\"${GIT_VERSION}\\\"")
Run Code Online (Sandbox Code Playgroud)
问题是复合命令execute_process显然为版本返回了一个空字符串。我必须以某种方式git describe从存储库目录中运行命令,但它与生成代码的构建目录不同。
我怎样才能让 make 进程在适当的目录中执行适当的 git 命令,即使是从构建目录中调用的?另外,我怎样才能cmake像通常在 shell 中期望的那样从复合命令中获取输出?
我尝试过的事情
我试图按照此处的建议将复合命令用括号括起来,以便在子 shell 中运行该命令,但输出似乎没有返回到父 shell。
此链接表明execute_process可以通过多次COMMAND调用运行,但似乎stdout从第一个调用到stdin下一个调用,因此不会产生所需的结果。
我还尝试sh -c在execute_process结构内部使用显式调用 shell 。我不确定我是否完全理解这次尝试的结果,但我无法获得'在这种情况下我需要在execute_process.