小编cha*_*umQ的帖子

pyserial:没有名为tools的模块

我已经使用python 2.7.2在我的Ubuntu盒子上安装了最新的pySerial,它适用于大多数事情,但每当我尝试导入'tools'包时,它就说它无法找到'工具'.pySerial文档显式引用了这个'tools'包.

>>> from serial import tools
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    import serial.tools
ImportError: No module named tools
Run Code Online (Sandbox Code Playgroud)

当我:

>>> serial.VERSION
'2.5'
Run Code Online (Sandbox Code Playgroud)

这是Source Forge的最新版本

那么为什么我不能进入pySerial的'tools'包呢?

python serial-port pyserial python-2.7

28
推荐指数
3
解决办法
5万
查看次数

{} || []不是有效的JavaScript

为什么{} || []无效?

$ echo '[] || {}' | node # this works
$ echo '{} || []' | node # but this doesn't
[stdin]:1
{} || []
   ^^

SyntaxError: Unexpected token ||
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Object.<anonymous> ([stdin]-wrapper:6:22)
    at Module._compile (module.js:652:30)
    at evalScript (bootstrap_node.js:466:27)
    at Socket.<anonymous> (bootstrap_node.js:237:15)
    at emitNone (events.js:111:20)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)

$ echo '({}) || []' | node # unless you do this
Run Code Online (Sandbox Code Playgroud)

javascript node.js

17
推荐指数
1
解决办法
663
查看次数

单击按钮时更改OptionMenu的选项

假设我有一个选项菜单network_select,其中包含要连接的网络列表.

import Tkinter as tk

choices = ('network one', 'network two', 'network three')
var = tk.StringVar(root)
network_select = tk.OptionMenu(root, var, *choices)
Run Code Online (Sandbox Code Playgroud)

现在,当用户按下刷新按钮时,我想更新用户可以连接到的网络列表.

  • 我不能使用,.config因为我看了看network_select.config()并没有看到一个看起来像我给它的选择的条目.
  • 我不认为这是可以使用tk变量改变的东西,因为没有这样的东西ListVar.

python tkinter onclick optionmenu python-2.7

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

调用另一个函数中定义的函数

我可以在python3.2中调用嵌套在全局范围内的另一个函数内的函数吗?

def func1():
    def func2():
        print("Hello")
        return
    return
Run Code Online (Sandbox Code Playgroud)

是否可以从func1()外部调用func2()?

python python-3.x

8
推荐指数
2
解决办法
3257
查看次数

如何忽略colorbar中的NaN?

我有一个3D表面,伴随着一个颜色条,由生成

surf = ax.plot_surface(xv, yv, zv, ...)
cb = fig.colorbar(surf)
Run Code Online (Sandbox Code Playgroud)

当它工作时,它看起来像这样:

在此输入图像描述

问题是某些值可能是NaN,在这种情况下,colorbar无法生成,如下所示:

例

C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colorbar.py:581: RuntimeWarning: invalid value encountered in greater
  inrange = (ticks > -0.001) & (ticks < 1.001)
C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colorbar.py:581: RuntimeWarning: invalid value encountered in less
  inrange = (ticks > -0.001) & (ticks < 1.001)
C:\Users\Sam\Anaconda\lib\site-packages\matplotlib\colors.py:576: RuntimeWarning: invalid value encountered in less
  cbook._putmask(xa, xa < 0.0, -1)
Run Code Online (Sandbox Code Playgroud)

我可以尝试用0(zv[isnan(zv)] = 0)替换zv的NaN值,但随后生成的图形具有垂直悬崖,这会使一些特征混淆和模糊,并且会使颜色条偏斜.

在此输入图像描述

我想要的是颜色条忽略NaN值的方法.要做到这一点,我可以在创建后手动设置颜色条(amin(zv[~isnan(zv)])amax(zv[~isnan(zv)])),但我不知道如何做到这一点.

有关如何在计算颜色条和着色3d表面时忽略NaN的任何建议?

python matplotlib

7
推荐指数
1
解决办法
3372
查看次数

multiprocessing.Queue 间歇性失败。Python中的错误?

Pythonmultiprocessing.Queue间歇性失败,我不知道为什么。这是 Python 还是我的脚本中的错误?

最小的失败脚本

import multiprocessing
import time
import logging
import multiprocessing.util
multiprocessing.util.log_to_stderr(level=logging.DEBUG)

queue = multiprocessing.Queue(maxsize=10)

def worker(queue):
    queue.put('abcdefghijklmnop')

    # "Indicate that no more data will be put on this queue by the
    # current process." --Documentation
    # time.sleep(0.01)
    queue.close()

proc = multiprocessing.Process(target=worker, args=(queue,))
proc.start()

# "Indicate that no more data will be put on this queue by the current
# process." --Documentation
# time.sleep(0.01)
queue.close()

proc.join()
Run Code Online (Sandbox Code Playgroud)

我正在 Debian 中的 CPython 3.6.6 中对此进行测试。它也失败了 docker python:3.7.0-alpine

docker run …
Run Code Online (Sandbox Code Playgroud)

python ipc pipe multiprocessing

7
推荐指数
1
解决办法
1457
查看次数

如何使用motorola使ADB在linux上运行

正如标题所说,我在Linux上使用ADB时遇到了困难.我有一个摩托罗拉Droid X阴影运行姜饼2.3.4.我有一台配有Ubuntu 13.04的笔记本电脑.我需要能够使用ADB建立从计算机到手机的连接.

  1. 我从谷歌安装了ADB(进入〜/ android-sdk-linux)
  2. 我把手机调试好了(设置 - >应用程序 - >开发 - > usb调试)
  3. 我安装了udev规则.(见获取更多信息)
  4. 我重新启动了电脑和手机
  5. 我连接了两个(电话说它正在充电)
  6. 我试过./adb设备

我有一个空的设备列表

sam@Aristotle:~$ ls -ahl /etc/udev/rules.d/51-android.rules 

    -rwxr-xr-x 1 root root 2.7K Jun 19 14:03 /etc/udev/rules.d/51-android.rules

sam@Aristotle:~$ cat /etc/udev/rules.d/51-android.rules 
    <!-- snip -->
    SUBSYSTEM==”usb”, ATTR{idVendor}==”22B8?, MODE=”0666?, GROUP=”plugdev”
    <!-- snip -->
Run Code Online (Sandbox Code Playgroud)

然后我重新启动机器.一旦它启动我插入手机.

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb devices
    List of devices attached 

root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb kill-server
root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
root@Aristotle:/home/sam/android-sdk-linux/platform-tools# ./adb …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu android adb

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

C++转换为unsigned签名

我试图复制这个,但它不会编译.

unsigned char x = 0;
reinterpret_cast<signed char>(x);
Run Code Online (Sandbox Code Playgroud)

它说

C:\Users\SXG5558\Documents\Arduino\sketch_jun30a\sketch_jun30a.ino: In function 'void setup()':

sketch_jun30a:3: error: invalid cast from type 'unsigned char' to type 'signed char'

     reinterpret_cast<signed char>(x);

                                    ^

exit status 1
Run Code Online (Sandbox Code Playgroud)

编辑:

要清楚,我确实想要重新解释内存中从有符号到无符号的位.我正在编写一个读取和写入无符号数据的I2C库,但我正在使用该库来控制已签名的传感器,因此我想重新解释转换实际数据.

c++ arduino reinterpret-cast

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

在 Python 中向 GKE 主服务器进行身份验证

我需要使用Kubernetes Python 客户端和 Google Cloud python 客户端对在GKE 中配置的 Kubernetes 集群进行身份验证。我宁愿不掏钱,原因有几个:gcloud

  • gcloud当我拥有原生 Google Cloud 库时依赖Python 脚本中的系统 shell是不优雅的
  • 它要求系统具有 gcloud
  • 我必须将用户切换到相关的 ServiceAccount 并切换回来
  • 它会产生启动/加入另一个进程的成本

因此,gcloud container clusters get-credentials(委托给gcloud config config-helper)的工作流程不足以让我获得所需的 API 密钥。如何使用 Google Cloud Python API 获得等效输出?

这是我到目前为止所拥有的:

import kubernetes.client
import googleapiclient.discovery
import base64

# get the cluster object from GKE
gke = googleapiclient.discovery.build('container', 'v1', credentials=config['credentials'])
name = f'projects/{config["project_id"]}/locations/{config["location"]}/{parent}/clusters/{config["name"]}'
gke_clusters = gke.projects().locations().clusters()
gke_cluster = gke_clusters.get(name=name).execute()

# set up Kubernetes Config
kube_config = …
Run Code Online (Sandbox Code Playgroud)

google-oauth google-cloud-platform kubernetes google-kubernetes-engine

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

像变量一样在字符串中扩展PHP函数

在PHP中,我可以说

$noun = "bird";
$adjective = "warm;
echo <<<EOT
The $noun is very $adjective
EOT;
Run Code Online (Sandbox Code Playgroud)

它会输出

这只鸟非常温暖

有没有办法用函数做到这一点?

function getNoun() { return "bird"; }
function getAdjective() { return "warm"; }
echo <<<EOT
The getNoun() is very getAdjective()
EOT;
Run Code Online (Sandbox Code Playgroud)

和输出

这只鸟非常温暖

php string function

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