有没有办法更新PyPi包而不更改版本号?
想象一下,我在最近上传到PyPi的软件包中发现了一个小错误.有没有办法编辑/重新上传代码而不增加版本号?
更新
我想我应该澄清一下,"bug"我的意思是实际源代码中的版本号是错误的 - 它不是一个功能性的东西,它只是意味着你package.version是否得到了以前的版本,而不是当前版本(是的我知道这可能会导致其他人的代码中的错误,但鉴于我们处于alpha状态,我希望版本依赖关系还没有设置好......).为了记录,明显无声的错误修复是坏的!
首先,我知道经常会问这种[类型]问题,所以让我先说一下我尽可能多地阅读,但我仍然不知道这笔交易是什么.
我已经并行化了一个巨大的外部for循环.循环迭代次数各不相同,通常在20-150之间,但是循环体做了大量的工作,需要大量的局部密集线性代数例程(例如,代码是源的一部分,而不是外部依赖) .在循环体内有1000多个调用这些例程的调用,但它们都完全相互独立,所以我认为它将是并行性的主要候选者.循环代码是C++,但它调用了许多用C编写的子程序.
代码看起来像这样;
<declare and initialize shared variables here>
#ifdef _OPENMP
#pragma omp parallel for \
private(....)\
shared(....) \
firstprivate(....) schedule(runtime)
#endif
for(tst = 0; tst < ntest; tst++) {
// Lots of functionality (science!)
// Calls to other deep functions which manipulate private variables only
// Call to function which has 1000 loop iterations doing matrix manipulation
// With no exaggeration, there are probably millions
// of for-loop iterations in this body, in the various functions …Run Code Online (Sandbox Code Playgroud) 你可以在编译时从编译时设置R的C和C++标志R CMD INSTALL(基本上,在这个特殊情况下我想关闭编译器优化,但理想情况下有一个通用的解决方案)?
我知道你可以影响一些选项使用--configure-args="...",而我乐观地尝试--configure-args="diable-optimization",但无济于事.同样,我也可以编辑$RHOME/etc/Makeconf但是这不是我正在寻找的那种解决方案(并且在没有相关写入权限的情况下不可能).
我通过autoconf脚本和目录中的Makevars文件定义我的标志package/src,如果这有任何区别.
背景
我有两个numpy数组,我想用它们以最有效/最快的方式进行一些比较操作.两者都只包含无符号整数.
pairs是一个n x 2 x 3数组,它包含一长串配对的3D坐标(对于某些命名法,pairs数组包含一组对......) - 即
# full pairs array
In [145]: pairs
Out[145]:
array([[[1, 2, 4],
[3, 4, 4]],
.....
[[1, 2, 5],
[5, 6, 5]]])
# each entry contains a pair of 3D coordinates
In [149]: pairs[0]
Out[149]:
array([[1, 2, 4],
[3, 4, 4]])
Run Code Online (Sandbox Code Playgroud)
positions是n x 3一个包含一组3D坐标的数组
In [162]: positions
Out[162]:
array([[ 1, 2, 4],
[ 3, 4, 5],
[ 5, 6, 3],
[ 3, 5, 6], …Run Code Online (Sandbox Code Playgroud) 希望这是一个非常简单的查询,但它让我摸不着头脑.
我有一个字符串,它只是一个整数,我试图将该整数作为一个整数输出.面对它应该不是问题.
// this is how I create the string (it's the playload from a UDP datagram packet,
// thought I don't think the origins hugely important - it's juts a test run so the
// stringMessage is always 1 (created by a seperate client process)
...
recvSoc.receive(pac);
String stringMessage = new String(pac.getData());
port = pac.getPort();
System.out.println("RECEIVED: " + stringMessage + " on port: " + port);
processMessage(stringMessage);
...
// Then in processMessage
public void processMessage(String data) {
int message; …Run Code Online (Sandbox Code Playgroud) 我一直在scipy.cluster.vq.kmeans用于做一些k-means聚类,但是想知道是否有办法确定你的每个数据点(putativly)与哪个质心相关联.
显然你可以手动完成这个,但据我所知,kmeans函数不会返回这个?
我创建了一个带有 bash 脚本的图像,该脚本ENTRYPOINT本身会从conda环境中启动一个可执行文件。我直接从单层(目前)构建它,我意识到这不是最佳实践,但让我们暂时忽略它......
文件
FROM alexholehouse/seq_demo:demo_early
SHELL ["/bin/bash", "-c"]
ENTRYPOINT ["/seq_demo/launcher/launcher.sh"]
Run Code Online (Sandbox Code Playgroud)
哪里launcher.sh是
#!/bin/bash
# source bashrc which includes conda init section (and works fine in an interactive terminal)
source /root/.bashrc
# activate the conda environment
conda activate custom_conda
if [ -d /mount ]
then
cd /mount
# run the executable from the conda environment
demo_seq -k KEYFILE.kf
else
echo "No storage mounted..."
fi
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我使用上述 Dockerfile 构建映像时,.bashrc由于.bashrc.
[ -z "$PS1" ] …Run Code Online (Sandbox Code Playgroud) 所以这里有点疯狂.
如果您有一些由R函数调用的C代码(作为共享对象),请尝试将其添加到代码中
void warn() {
int i; // just so the function has some work, but you could make it empty to, or do other stuff
}
Run Code Online (Sandbox Code Playgroud)
如果您随后调用warn()R函数调用的C代码中的任何位置,则会出现段错误;
*** caught segfault ***
address 0xa, cause 'memory not mapped'
Traceback:
1: .C("C_function_called_by_R", as.double(L), as.double(G), as.double(T), as.integer(nrow), as.integer(ncolL), as.integer(ncolG), as.integer(ncolT), as.integer(trios), as.integer(seed), as.double(pval), as.double(pval1), as.double(pval2), as.double(pval3), as.double(pval4), as.integer(ntest), as.integer(maxit), as.integer(threads), as.integer(quietly))
2: package_name::R_function(L, G, T, trios)
3: func()
4: system.time(func())
5: doTryCatch(return(expr), name, parentenv, handler)
6: tryCatchOne(expr, names, parentenv, handlers[[1L]]) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,我调用一个触发段错误的函数.我解决了这个问题,但在此过程中我发现了以下情况.
当我的代码是格式时;
main(){
...
std::cout << "Looking for segfault\n"; // this does not print
buggyFunction(); // crashes in here
...
}
buggyFunction(){
...
thing_that_causes_segfault;
...
}
Run Code Online (Sandbox Code Playgroud)
"寻找段错误"行不会打印到STD,程序在buggyFunction中崩溃.很好,但是当我在buggyFunction()中添加一个cout行时;
main(){
...
std::cout << "Looking for segfault\n"; // this now *does* print
buggyFunction();
...
}
buggyFunction(){
...
std::cout << "Now we're INSIDE buggy function\n"; // this prints too
thing_that_causes_segfault;
...
}
Run Code Online (Sandbox Code Playgroud)
在马车内部功能,两行打印(然后它崩溃).
为什么我们在输出中看到这种差异,这取决于增加这个额外的输出调用?它与流的处理有关还是其他什么?我正在使用g ++(Ubuntu 4.4.3-4ubuntu5)4.4.3.
说我有一个(有点无意义的)Python脚本
#!/usr/bin/python
a = 5
Run Code Online (Sandbox Code Playgroud)
有没有办法从交互式提示符运行此脚本,以便运行后,如果我键入a我得到
>>> a
5
Run Code Online (Sandbox Code Playgroud)
并不是
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)
更一般地说,如果我的脚本通过一系列步骤计算某些内容,是否有一种方法可以在脚本完成后以相同的方式访问该内容.