小编doo*_*oom的帖子

使用Python列出可用的com端口

我正在寻找一种简单的方法来列出PC上所有可用的COM端口.

我找到了这个方法,但它是特定于Windows的:在Windows上列出串行(COM)端口?

我在Windows 7 PC上使用Python 3和pySerial.

我在pySerial API(http://pyserial.sourceforge.net/pyserial_api.html)中找到了一个serial.tools.list_ports.comports()列出com端口的函数(正是我想要的).

import serial.tools.list_ports
print(list(serial.tools.list_ports.comports()))
Run Code Online (Sandbox Code Playgroud)

但似乎它不起作用.当我的USB到COM网关连接到PC(我在设备管理器中看到COM5)时,此COM端口不包含在返回的列表中list_ports.comports().相反,我只得到似乎连接到调制解调器的COM4(我没有在设备管理器的COM和LPT部分看到它)!

你知道为什么它不起作用吗?您是否有另一种不是系统特定的解决方案?

python pyserial

70
推荐指数
8
解决办法
15万
查看次数

Node.js:Buffer.slice 和 Buffer.subarray 之间的区别

我查看了 Node.js Buffer 文档,但不明白Buffer.sliceBuffer.subarray之间的区别。

两者都指向“与原件相同的记忆”。

但似乎没有人不是对方的别名(似乎是当事时说的)。

测试表明行为是相同的:

> buf=Buffer.from([0,1,2,3,4,5,6])
<Buffer 00 01 02 03 04 05 06>
> bufSlice=buf.slice(1,5)
<Buffer 01 02 03 04>
> bufSub=buf.subarray(1,5)
<Buffer 01 02 03 04>
> bufSlice
<Buffer 01 02 03 04>
> bufSub
<Buffer 01 02 03 04>
> buf[3]=0xff
255
> buf
<Buffer 00 01 02 ff 04 05 06>
> bufSub
<Buffer 01 02 ff 04>
> bufSlice
<Buffer 01 02 ff 04>
Run Code Online (Sandbox Code Playgroud)

(即使 Node.js 文档中的切片示例不是很清楚)。

那么有什么区别呢?

buffer node.js

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

如何使用纯Python扩展API(python3)包装C++对象?

我想知道如何在没有外部工具(如Cython,Boost,SWIG,...)的情况下使用Python Extension API(和distutils)包装C++对象.只是用纯Python方式而不创建一个DLL.

请注意,我的C++对象具有内存分配,因此必须调用析构函数以避免内存泄漏.

#include "Voice.h"

namespace transformation
{ 
  Voice::Voice(int fftSize) { mem=new double[fftSize]; } 

  Voice::~Voice() { delete [] mem; } 

  int Voice::method1() { /*do stuff*/ return (1); } 
}
Run Code Online (Sandbox Code Playgroud)

我只想在Python中做类似的事情:

import voice

v=voice.Voice(512)
result=v.method1()
Run Code Online (Sandbox Code Playgroud)

c++ python word-wrap python-3.x

9
推荐指数
1
解决办法
1898
查看次数

无法在Electron(javascript)中制作透明窗口

我正在尝试使用ElectronJs制作透明窗口,但是我得到了黑色背景。

我在Linux(Debian Jessie)上

我尝试了不同的版本:最新版本,测试版和每夜版本,结果相同。

我有适用于同一台机器的NW.js版本,因此我希望这是电子问题。

这是我的代码main.js

const {app, BrowserWindow} = require('electron');
let mainWindow;
function createWindow () {
  mainWindow = new BrowserWindow({width: 920, height: 300,  frame:true, transparent:true, backgroundColor: '#00FFFFFF'});
  mainWindow.loadFile('index.html');
  mainWindow.on('closed', function () {
    mainWindow = null;
  });
}
app.on('ready', createWindow);
Run Code Online (Sandbox Code Playgroud)

这是我的代码index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
  </head>
  <body style="background-color:rgba(255,255,255,0); color:lightgrey;">
    <h1>Hello World!</h1>
    <!-- All of the Node.js APIs are available in this renderer process. -->
    We are using Node.js <script>document.write(process.versions.node)</script>,
    Chromium <script>document.write(process.versions.chrome)</script>,
    and …
Run Code Online (Sandbox Code Playgroud)

electron

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

cmake 配置在 3.10.1 中出错,但在 3.9.6 中没有

一个月前,我用 cmake 3.9.6 在一台 debian squeeze 机器上安装了 cmake,并且运行良好。

\n\n

现在,我正在另一台squeeze机器上安装cmake,但是当我这样做时它不起作用./configure。\n它说:

\n\n
------------------------------------------------------------------------------------------\nCMake 3.10.1, Copyright 2000-2017 Kitware, Inc. and Contributors\nFound GNU toolchain\nC compiler on this system is: gcc  \n---------------------------------------------\nError when bootstrapping CMake:\nCannot find a C++ compiler supporting C++11 on this system.\nPlease specify one using environment variable CXX.\nSee cmake_bootstrap.log for compilers attempted.\n---------------------------------------------\nLog of errors: /home/doom/things/cmake-3.10.1/Bootstrap.cmk/cmake_bootstrap.log\n---------------------------------------------\n
Run Code Online (Sandbox Code Playgroud)\n\n

和日志:

\n\n
    Checking for GNU toolchain\nTry: gcc\nLine: gcc  cmake_bootstrap_28642_test.c -o cmake_bootstrap_28642_test\n----------  file   -----------------------\nint main() { return 0; }\n------------------------------------------\nTest succeeded\nTry: g++\nLine: g++  cmake_bootstrap_28642_test.cpp -o cmake_bootstrap_28642_test\n---------- …
Run Code Online (Sandbox Code Playgroud)

g++ cmake

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

如何为多个Python版本和平台构建编译模块

我已经为我自己的流程构建了一个 Python 3 模块。

我使用 cython 来编译和包装 C++ 源代码。

我有一台带有 Python 3.4 的 Linux (Debian Jessie) 机器,因此 cythonize 为我制作了一个Processing.cpython-34m.so并将其复制到/usr/local/lib/python3.4/dist-packages.

但是当我在另一台装有 python3.5 的机器上使用它时,我必须重新编译所有内容。

如何从我的机器上为所有 Python 3 版本和多个平台构建 Linux 或 pip 包(这里只有 Jessie 和 Stretch,它们可能非常接近,实际上是相等的)?最好不需要在我的机器上安装所有版本的 Python 3。

这是我的 cythonization 的 setup.py 文件:

from distutils.core import setup, Extension
from Cython.Build import cythonize

setup(ext_modules = cythonize(Extension(
            "MyProcessing",
            sources=["MyProcessing.pyx", "myprocess.cpp", "mythirdp.cpp"],
            language="c++", 
        )))
Run Code Online (Sandbox Code Playgroud)

谢谢。

python software-distribution cython python-3.x cythonize

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

Debian 软件包:放置临时安装文件的正确位置在哪里?

我正在尝试为 Debian 构建一个二进制包(使用dpkg-deb --build),并且我需要将一些文件复制到目标计算机中以使用postinst脚本完成安装(并在之后删除它们)。

\n\n

但我不知道把它们放在哪里。

\n\n

我已经尝试过/tmp/mypkg,,,/bin/mypkgtmp//usr/share/mypkg/tmp\n但是 Lintian 为所有这些都产生了错误/警告:

\n\n\n\n

这是一个包含一些二进制文件的目录,因此我唯一可以使用的地方似乎是/usr/bin/mh.

\n\n

/usr/bin/mh似乎与邮件处理有关(不太清楚)。

\n\n

在不产生 Lintian 错误或警告的情况下,放置临时文件的正确位置是什么?

\n\n

这是我实际的树:

\n\n
.tmp\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 DEBIAN\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 control\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 postinst\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 usr\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bin\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mypkg\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mh\n    \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mypkgtmp\n    \xe2\x94\x82\xc2\xa0\xc2\xa0         \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n    \xe2\x94\x82\xc2\xa0\xc2\xa0         \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 lib.linux-x86_64-3.4\n    \xe2\x94\x82\xc2\xa0\xc2\xa0         \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 myClib.cpython-34m.so\n    \xe2\x94\x82\xc2\xa0\xc2\xa0         \xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mytools.py\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 …
Run Code Online (Sandbox Code Playgroud)

debian dpkg package lintian

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