小编nnn*_*mmm的帖子

是否可以同时使用Java,SWIG和Rust?

我正在尝试从Java调用Rust库,我真的很想使用SWIG从我编写的C头文件生成接口层(我也希望允许常规C客户端调用我的库,因此我认为维护一个接口头很有意义)。

我正在使用MingwRust(GNU ABI)Windows上完成所有这些工作。

我将精确地做我所做的事情以及下面的结果,但是从本质上讲,我最后得到的是UnsatisfiedLinkError。我认为有几件事可能是错误的,但是我不确定,也不确定如何(或是否)可以解决这些问题:

  1. SWIG在函数名称中放置数字(如果编辑testlib_wrap.c在我的示例中生成的文件,则可以看到此代码)。
  2. JNI 文档说我需要-Wl,--add-stdcall-alias在编译时传递参数,但是当我用货物建造时,我不确定该怎么做(如果我直接用rustc建造,可以传递它吗?我在手册页中看不到任何内容)

简而言之,我的问题是:

您如何使用SWIG从Java调用Rust

但是我觉得我正在摸索解决方案的表面,所以答案可能是解决上面的一个或两个问题,所以这就是我目前为止的位置...


我首先使用Cargo创建一个新的Rust库:

cargo new testlib
cd testlib
Run Code Online (Sandbox Code Playgroud)

testlib.h使用内容创建:

void tell_me_the_answer(void);
Run Code Online (Sandbox Code Playgroud)

创建testlib.i具有以下内容的Swig输入文件():

%module testlib
%{
#include "testlib.h"
%}
%include "testlib.h"
Run Code Online (Sandbox Code Playgroud)

运行swig生成一些Java和C:

mkdir testlib
swig -outdir testlib -java -package testlib testlib.i
Run Code Online (Sandbox Code Playgroud)

创建一个Program.java包含以下内容的主Java类():

public final class Program {
    static {
        System.loadLibrary("testlib"); …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface swig rust rust-cargo

5
推荐指数
1
解决办法
241
查看次数

RLS:如何自动解决 Visual Studio Code 中的导入错误?

我最近从 IntelliJ 切换到 Visual Studio Code,但我不明白的一件事是如何告诉我的编辑器自动编写一个

use std::sync::Arc;
Run Code Online (Sandbox Code Playgroud)

当我遇到类似以下导入错误时,在我的文件顶部:

VSC 中的 Rust 导入错误

在 IntelliJ 中,我所要做的就是单击红色错误图标并选择“导入”, 就会use出现在文件顶部。

我有 VSC 的 RLS 扩展。我该怎么做呢?

rust visual-studio-code

5
推荐指数
1
解决办法
3171
查看次数

使用“brew install ansible”命令无法完美安装 ansible 在 MacOS 中不起作用?错误:-sh:/usr/local/bin/ansible:没有那个文件或目录

我尝试使用终端 ( brew) 以及使用.dmgpackage.json安装 Python 。

command: brew install python
and this path is python when install using dmg
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
Run Code Online (Sandbox Code Playgroud)

但我收到下面列出的错误。

在此处输入图片说明

之后我尝试ansible安装:

brew install ansible
Run Code Online (Sandbox Code Playgroud)

which ansible 在此处输入图片说明

最后一个 ansible 命令 ping for all 或 host : 在此处输入图片说明

这是特定于操作系统的问题还是其他问题?您的帮助将不胜感激。

python macos homebrew ansible

5
推荐指数
1
解决办法
1146
查看次数

限制从python脚本一次运行的进程数

我正在运行一个备份脚本,启动子进程以通过rsync执行备份.但是我无法限制它一次启动的rsyncs的数量.

这是我目前正在处理的代码:

print "active_children: ", multiprocessing.active_children()
print "active_children len: ", len(multiprocessing.active_children())
while len(multiprocessing.active_children()) > 49:
   sleep(2)
p = multiprocessing.Process(target=do_backup, args=(shash["NAME"],ip,shash["buTYPE"], ))
jobs.append(p)
p.start()
Run Code Online (Sandbox Code Playgroud)

当我运行数百个rsyncs时,这显示最多一个孩子.这是实际启动rsync的代码(来自do_backup函数内部).command是包含rsync行的变量:

print command
subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
return 1
Run Code Online (Sandbox Code Playgroud)

如果我向do_backup函数添加sleep(x),它将在睡眠时显示为活动子项.另外,进程表被显示为具有1我是从这个是rsync的分裂关闭,不再是蟒蛇的孩子,让我的子进程死,所以我不能再指望它假设PPID rsync的过程.有没有人知道如何保持python子活着并被计算直到rsync完成?

python multithreading multiprocessing python-multithreading python-multiprocessing

4
推荐指数
1
解决办法
2188
查看次数

PyTorch:如何在Transfer Learning教程中计算平均值和stds?

我正在浏览PyTorch Transfer Learning教程:link

在数据增强阶段,有以下步骤来规范化图像:

transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
Run Code Online (Sandbox Code Playgroud)

我能理解为什么会这样做,但我找不到平均值和标准值是如何计算的?我试着计算列车数据集的平均值,平均值是:

array([ 0.11727478,  0.04542569, -0.28624609], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

python pytorch

4
推荐指数
1
解决办法
2335
查看次数

PyTorch 中降低 Adam 优化器学习率的首选方法

我一直在看到使用 Adam 优化器的代码。他们降低学习率的方式如下:


    optimizer = torch.optim.Adam(net.parameters(),lr=0.01)
    (training...
    optimizer.step()...)

    if iteration >= some_threshold:
        for param_group in optimizer.param_groups:
            param_group['lr'] = 0.001

Run Code Online (Sandbox Code Playgroud)

我认为所有参数的学习率都相同。那么为什么要迭代 param_groups 并为每个参数单独设置学习率呢?

下面的方法不是更快并且具有相同的效果吗?


    optimizer = torch.optim.Adam(net.parameters(),lr=0.01)
    scheduler = MultiStepLR(optimizer, milestones=[some_threshold], gamma=0.1)
    (training...
    optimizer.step()
    scheduler.step())

Run Code Online (Sandbox Code Playgroud)

谢谢

pytorch

4
推荐指数
1
解决办法
2380
查看次数

perf record 的默认行为是什么?

我很清楚,perf总是记录一个或多个事件,并且采样可以是基于计数器的或基于时间的。但是,当未给出-e-F开关时, 的默认行为是什么perf record?的联机帮助页perf-record没有告诉您它在这种情况下的作用。

linux perf

4
推荐指数
1
解决办法
1616
查看次数

使用 puppeteer 在选项卡之间切换

我需要一个示例,如何使用 puppeteer 在选项卡之间切换

这是目前我所拥有的:

const puppeteer = require('puppeteer');



(async () => {
    const browser = await puppeteer.launch({
    headless: false, // launch headful mode
});


    const page = await browser.newPage();
    await page.setViewport({ width: 1920, height: 1080 });
                await page.goto('https://URL1.com');




    const pagee = await browser.newPage();
    await pagee.setViewport({ width: 1920, height: 1080 });
                await pagee.goto('https://URL2.com');

})();
Run Code Online (Sandbox Code Playgroud)

所以它首先打开 2 个标签:Url1,第二个:Url2

我需要的:

第一个选项卡做一些动作...转到第二个选项卡做一些动作...回到第一个选项卡做一些动作...

你们能给我举个例子吗?

谢谢你

tabs node.js puppeteer

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

不匹配的类型:预期的结构,找到关联的类型

我定义了许多TryFrom实例,并想编写一个可以使用所有这些类型的函数。

use std::convert::TryFrom;

// several structs like this that are TryFrom<i32>
struct SuperiorThanZero(i32);

impl TryFrom<i32> for SuperiorThanZero {
    type Error = String;

    fn try_from(value: i32) -> Result<Self, Self::Error> {
        unimplemented!()
    }
}

fn from_three<T>() -> Result<T, String>
where
    T: TryFrom<i32>,
{
    T::try_from(3)
}
Run Code Online (Sandbox Code Playgroud)

这不会编译:

use std::convert::TryFrom;

// several structs like this that are TryFrom<i32>
struct SuperiorThanZero(i32);

impl TryFrom<i32> for SuperiorThanZero {
    type Error = String;

    fn try_from(value: i32) -> Result<Self, Self::Error> {
        unimplemented!()
    }
}

fn from_three<T>() -> …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何使用app-route在聚合物3中实现路由

我一直坚持在聚合物3中实施路由。我遵循了app-route文档中提供的基本指南。但是在加载网页时,我看不到任何组件被加载。我签入shadow DOM,没有看到任何DOM呈现。不知道我在想什么。这是代码。

static get properties() {
      return {
      page:{
        type: String,
        reflectToAttribute: true,
        observer: '_pageChanged'
      }
      };
    }
    _pageChanged(currentPage, oldPage){
    	  console.log('CURRENT - ', currentPage);
    	  console.log('OLD - ', oldPage);
    	  switch(currentPage){
    		  case 'home':
    			import('./home-comp.js').then()
    			break;
    		case 'about':
    			import('./about-comp.js').then()
    			break;
    		case 'contact':
    			import('./contact-comp.js').then()
    			break;
    		default:
    			this.page = 'home';
    	  }
      }
Run Code Online (Sandbox Code Playgroud)
<app-route
          route="{{route}}"
          pattern="/:page"
          data="{{routeData}}"
          tail="{{subroute}}">
</app-route>

<home-comp name="home"></home-comp>
<about-comp name="about"></about-comp>
<contact-comp name="contact"></contact-comp>
Run Code Online (Sandbox Code Playgroud)

我看不到有关Polymer 3的大量文档可用于检查问题。在查看Polymer的默认示例Web应用程序shop。之后,我遇到了一些适当的解决方案。我想与社区分享给任何需要帮助的人。

app-route iron-pages polymer-3.x

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