小编Jea*_*sar的帖子

python mock和未安装的库

我正在研究机器人的软件,它通常在Raspberry Pi上运行.让我们考虑两个文件的导入:

motor.py (运行电机):

from RPi import GPIO as gpio
Run Code Online (Sandbox Code Playgroud)

client.py(与服务器通信并将命令传递给电机):

from rpi.motor import Motor
Run Code Online (Sandbox Code Playgroud)

这两个文件都在一个名为的目录中rpi,其中包含a __init__.py和a __main__.py.该RPi软件包无法安装在非RPi设备上.但是,我仍然想测试它的功能client.py.

import unittest
from unittest import mock
# Location A


class TestClient(unittest.TestCase):
    # Location B
    setUp(self):
         # Location C
         pass
Run Code Online (Sandbox Code Playgroud)

最初,我尝试from rpi.client import Client了LocA,但是失败了,因为它试图导入Motor,然后从RPi导入GPIO,这是不存在的.我也尝试mock.patch("rpi.client.Motor")过LocB(包括在LocC mock_motor之后添加self,并Client在LocC中导入,但也失败了.我也尝试RPi在LocA上进行模拟,但它也没有用.

你如何模拟你的系统上没有安装的库?

python unit-testing mocking python-3.x python-unittest

8
推荐指数
1
解决办法
1520
查看次数

如何在 Sympy 中隔离变量?

在 Sympy 中,如何隔离通用变量?

我可以这样做,例如:

>>> import sympy as sm
>>> P, rho, g, h = sm.symbols("P rho g h")
>>> depth = sm.Eq(P, rho*g*h)
>>> sm.solve(depth, h)
[P/(g*rho)]
Run Code Online (Sandbox Code Playgroud)

但不是这个:

 >>> T, a, mu = sm.symbols("T a mu")
 >>> kepler3 = sm.Eq(T, 2*sm.pi*sm.sqrt(a**3 / mu))
 >>> solve(kepler3, a)
[2**(1/3)*(T**2*mu)**(1/3)/(2*pi**(2/3)),
 2**(1/3)*(T**2*mu)**(1/3)*(-1 + sqrt(3)*I)/(4*pi**(2/3)),
 -2**(1/3)*(T**2*mu)**(1/3)*(1 + sqrt(3)*I)/(4*pi**(2/3))]
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种自动生成的方法:sm.root(mu*T**2/(4*sm.pi**2), 3),从技术上讲,这是第一个输出。

不过,Solve 找到了根,而不是用给定变量来写它。

python sympy

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

如何在熊猫中制作非数值数据的条形图

假设我有这些数据:

>>> df = pd.DataFrame(data={"age": [11, 12, 11, 11, 13, 11, 12, 11],
                        "response": ["Yes", "No", "Yes", "Yes", "Yes", "No", "Yes", "Yes"]})
>>> df
    age response
0   11  Yes
1   12  No
2   11  Yes
3   11  Yes
4   13  Yes
5   11  No
6   12  Yes
7   11  Yes
Run Code Online (Sandbox Code Playgroud)

我想制作一个条形图,显示按年龄汇总的是或否答案.有可能吗?我曾尝试histkind=bar,但也能按年龄排序,而不是绘图年龄和响应分开.

它看起来像这样:

  ^
4 |   o
3 |   o
2 |   o
1 |   ox      ox      o
0 .----------------------->
      11      12      13  
Run Code Online (Sandbox Code Playgroud)

o"是" 在哪里,x …

python matplotlib pandas seaborn

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